任何人都可以建议如何解析下面的字符串吗?
Added Active10000000044: {activityId=Active1, schedule=1 22 * * 0, isEnabled=Y, type=global, runAtHost=null}
我希望Active10000000044
分开使用下一步...
答案 0 :(得分: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]);
答案 1 :(得分:0)
它可以简单如下:
String str = str.replaceFirst("Added ","").replaceFirst(" .*","");
取决于您是否向我们提供了全套测试数据: - )
如果您想要第二个单词而不考虑第一个单词,您可以尝试:
String str = str.replaceFirst("[^ ]+ +","").replaceFirst(" .*","");
这些建议都依赖于这样的事实:第一个单词前面没有空格,而空格 实际上是空格。任何偏离都需要稍微调整一下。
答案 2 :(得分: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"
答案 3 :(得分:0)
试试这个
Splitter课程来自Google guava图书馆
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