任何人都可以建议如何解析下面的字符串吗?解析字符串
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