2016-11-01 20 views
-2

currentnameをこの文字列からどうやって取得できますか?java最後の単語を文字列から取得する

[{"name":"fra"},{"name":"Ue","changedToAt":1447121046000}, 
{"name":"Nn","changedToAt":1463698483000}, 
{"name":"currentname","changedToAt":1473109797000}] 

と同様に、この

[{"name":"fra"},{"name":"Ue","changedToAt":1447121046000}, 
{"name":"currentname","changedToAt":1473109797000}] 

かさえ、この

[{"name":"fra"},{"name":"currentname","changedToAt":1447121046000}] 

かさえ、この

[{"name":"currentname"}] 

currentnameは必ずしもない変数であるような別の文字列同じ一日それはcou別の日には"max"あなたがのような構造で終わるだろう文字列を解析する方法を知っていると仮定すると、

+2

JSONパーサーを使用します。 –

+0

あなたは一連の値を扱っていて、最後の値を必要としているように見えます。 –

+0

またはタイムスタンプが最大のもの? –

答えて

1

を助けてください"jim"になり、LD:

を:あなたが使用して現在の名前を得ることができたJava 8の使用

class NameChange { 
    private final String name; 
    private final Date timeOfChange; 
} 

List<NameChange> nameChanges; 

Optional<String> currentName = nameChanges.stream() 
    .max(Comparator.comparing(NameChange::getTimeOfChange)) 
    .map(NameChange::getName); 

リストに名前が含まれていない可能性を考慮して、Optionalを返します。

あなたが解析するgsonを使用している場合、それはさらに簡単です:

Gson gson = new Gson(); 
Arrays.stream(gson.fromJson(input, NameChange[].class)) 
    ... 
0

あなたは所望の結果はgroup[1]

になります。この

String pattern="\"name\":\"([a-zA-Z]+)\"((,\"changedToAt\":[0-9]+\}\])|(\}\]))"; 

ようなパターンで、regular expressionを使用することができますサンプルはすべてこちらのサンプルをご覧ください:

http://fiddle.re/atkvba (Javaボタンを押すだけ)

関連する問題