2014-06-10 202 views
-4

任何人都可以建議如何解析下面的字符串嗎?解析字符串

Added Active10000000044: {activityId=Active1, schedule=1 22 * * 0, isEnabled=Y, type=global, runAtHost=null} 

我想Active10000000044部分分離出來,用進一步下一步..

+1

@ Masud:很顯然*不是* JSON。 – nneonneo

+0

這整行是一個字符串? **添加了Active10000000044:{activityId = Active1,schedule = 1 22 * * 0,isEnabled = Y,type = global,runAtHost = null}:** – Cyrex

+1

您是否嘗試過像String.substring()和String.indexOf() ? – fajarkoe

回答

0

如果你想右邊的「:」那麼你可以使用使用

String str = "Added Active10000000044: {activityId=Active1, schedule=1 22 * * 0, isEnabled=Y, type=global, runAtHost=null}:"; 

System.out.println(str.split(":")[1]); 

左邊可以發現

System.out.println(str.split(":")[0]); 
0

可能是簡單的:

String str = str.replaceFirst("Added ","").replaceFirst(" .*",""); 

取決於您是否已經給我們全套的測試數據的:-)

如果你想在第二個字,無論第一,你可以嘗試:

String str = str.replaceFirst("[^ ]+ +","").replaceFirst(" .*",""); 

這兩個建議都依賴於這樣一個事實,即第一個單詞前面沒有空格,並且空白區域實際上是的空格。任何偏離這將需要一些輕微的調整。

0

試試這個,

String str = "Added Active10000000044: {activityId=Active1, schedule=1 22 * * 0, isEnabled=Y, type=global, runAtHost=null}:"; 

String[] parts = str.split(":"); 

String part1 = parts[0]; // value "Added Active10000000044" 

String[] SetU_need = part1.split(" "); 

String u_need = SetU_need[1]; // value "Active10000000044" 
+0

不編譯 –

+0

立即編輯它 – Cyrex

0

試試這個

Splitter類是谷歌番石榴庫

String text = "Added Active10000000044: {activityId=Active1, schedule=1 22 * * 0, isEnabled=Y, type=global, runAtHost=null}:"; 
    int indexOfOpenBrace = text.indexOf("{"); 
    int indexOfCloseBrace = text.indexOf("}"); 
    String valuesAsText = text.substring(indexOfOpenBrace+1, indexOfCloseBrace); 
    List<String> splitToList = Splitter.on(",").omitEmptyStrings().splitToList(valuesAsText); 
    Map<String, String> map = new HashMap<>(); 
    for (String keyValues : splitToList) { 
     List<String> splitToKeyAndValues = Splitter.on("=").omitEmptyStrings().splitToList(keyValues); 
     map.put(splitToKeyAndValues.get(0), splitToKeyAndValues.get(1)); 
    } 
    Set<String> keySet = map.keySet(); 
    for (String key : keySet) { 
     System.out.println(key+":"+map.get(key)); 
    } 

輸出

activityId:Active1 
schedule:1 22 * * 0 
type:global 
runAtHost:null 
isEnabled:Y