我正在尝试拆分字符串
String strLine="sadf={asdf;=};asdfa ={sfasdf} as}; asdfa ={sfasdf};";
这样输出应该是这样的
={asdf;=};
={sfasdf} as};
={sfasdf};
我试过这段代码
String str1=strLine.substring((strLine.indexOf("=")),strLine.indexOf(";")+1);
strLine=strLine.substring((strLine.indexOf(";")+1));
但我没有得到我想要的结果..
答案 0 :(得分:4)
可能不是最优雅的方式,但它可以满足您的需求:
String[] st = strLine.split("};");
for (String s : st) {
System.out.println(s.substring(s.indexOf("=")) + "};");
}
答案 1 :(得分:1)
试试这个:
int i1 = strLine.indexOf("=");
int i2 = strLine.indexOf("};", i1);
String s = strLine.substring(i1, i2 + 2);
答案 2 :(得分:0)
您不需要拆分字符串。我建议您使用正则表达式来实现此目的。在搜索中找到模式。
对于一个想法,尝试使用=
搜索模式开头,最后使用{
,}
和分号。
找到与该模式匹配的所有组。
示例:
Regular Expression = ".*(=\{.*\}.*;)*.*"
答案 3 :(得分:0)
String strLine="sadf={asdf;=};asdfa ={sfasdf} as}; asdfa ={sfasdf};";
String[] s=strLine.split("};");
String str1=s[0]+"};";
String str2=s[1]+"};";
String str3=s[2]+"};";
System.out.println(str1+" "+str2+" "+str3);