任何人都可以建議如何解析下面的字符串嗎?解析字符串
Added Active10000000044: {activityId=Active1, schedule=1 22 * * 0, isEnabled=Y, type=global, runAtHost=null}
我想Active10000000044
部分分離出來,用進一步下一步..
任何人都可以建議如何解析下面的字符串嗎?解析字符串
Added Active10000000044: {activityId=Active1, schedule=1 22 * * 0, isEnabled=Y, type=global, runAtHost=null}
我想Active10000000044
部分分離出來,用進一步下一步..
如果你想右邊的「:」那麼你可以使用使用
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]);
它可能是簡單的:
String str = str.replaceFirst("Added ","").replaceFirst(" .*","");
取決於您是否已經給我們全套的測試數據的:-)
如果你想在第二個字,無論第一,你可以嘗試:
String str = str.replaceFirst("[^ ]+ +","").replaceFirst(" .*","");
這兩個建議都依賴於這樣一個事實,即第一個單詞前面沒有空格,並且空白區域實際上是的空格。任何偏離這將需要一些輕微的調整。
試試這個,
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"
不編譯 –
立即編輯它 – Cyrex
試試這個
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
@ Masud:很顯然*不是* JSON。 – nneonneo
這整行是一個字符串? **添加了Active10000000044:{activityId = Active1,schedule = 1 22 * * 0,isEnabled = Y,type = global,runAtHost = null}:** – Cyrex
您是否嘗試過像String.substring()和String.indexOf() ? – fajarkoe