2014-06-10 205 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