我有一个这样的字符串:
[{\"ID\":2,\"Text\":\"Capital Good\"},{\"ID\":3,\"Text\":\"General Office Items\"},{\"ID\":1,\"Text\":\"Raw Material Purchase\"}]&@[{\"ID\":2,\"Text\":\"Capital Good\"},{\"ID\":3,\"Text\":\"General Office Items\"},{\"ID\":1,\"Text\":\"Raw Material Purchase\"},{\"ID\":0,\"Text\":\"Approved\"},{\"ID\":1,\"Text\":\"Freezed\"},{\"ID\":2,\"Text\":\"Cancelled\"},{\"ID\":3,\"Text\":\"Completed\"},{\"ID\":4,\"Text\":\"Foreclosed\"},{\"ID\":5,\"Text\":\"UnApproved\"}]
我想根据& @字符组合将我的字符串分成两部分:
String [] separated=line.split("&@");
但是当我检查分离的值[0]包含完美的前半部分字符串但是当我检查分隔[1]时它包含完整的字符串而没有"& @"字符。我想分开[1]包含"& @"之后的字符。任何帮助将不胜感激。
答案 0 :(得分:2)
理解split函数,它将输入分隔并拆分字符串。
String [] java.lang.String.split(String regex)
围绕给定正则表达式的匹配拆分此字符串。
此方法的工作方式就像调用带有给定表达式和limit参数为零的双参数split方法一样。因此,结尾的空字符串不包含在结果数组中。
字符串" boo:和:foo",例如,使用这些表达式产生以下结果:
正则表达式结果 :{" boo",""," foo" } o {" b","",":和:f" }
如果你想要分隔符("& @")出现。这个
public static void main(String[] args) {
String input="[{\"ID\":2,\"Text\":\"Capital Good\"},{\"ID\":3,\"Text\":\"General Office Items\"},{\"ID\":1,\"Text\":\"Raw Material Purchase\"}]&@[{\"ID\":2,\"Text\":\"Capital Good\"},{\"ID\":3,\"Text\":\"General Office Items\"},{\"ID\":1,\"Text\":\"Raw Material Purchase\"},{\"ID\":0,\"Text\":\"Approved\"},{\"ID\":1,\"Text\":\"Freezed\"},{\"ID\":2,\"Text\":\"Cancelled\"},{\"ID\":3,\"Text\":\"Completed\"},{\"ID\":4,\"Text\":\"Foreclosed\"},{\"ID\":5,\"Text\":\"UnApproved\"}]";
String[] resultArray = input.split("&@");
for(int i=0;i<resultArray.length;i++){
if(i!=0)
resultArray[i]="&@"+resultArray[i];
}
for(String str:resultArray)
System.out.println(str);
}
答案 1 :(得分:0)
你需要像String mySpitedStr[] = myStr.split("&|@");
答案 2 :(得分:0)
[{\"ID\":2,\"Text\":\"Capital Good\"},{\"ID\":3,\"Text\":\"General Office Items\"},{\"ID\":1,\"Text\":\"Raw Material Purchase\"}]
//&@
[{\"ID\":2,\"Text\":\"Capital Good\"},{\"ID\":3,\"Text\":\"General Office Items\"},{\"ID\":1,\"Text\":\"Raw Material Purchase\"},{\"ID\":0,\"Text\":\"Approved\"},{\"ID\":1,\"Text\":\"Freezed\"},{\"ID\":2,\"Text\":\"Cancelled\"},{\"ID\":3,\"Text\":\"Completed\"},{\"ID\":4,\"Text\":\"Foreclosed\"},{\"ID\":5,\"Text\":\"UnApproved\"}]
这是你的原始字符串,其中包含换行符和@,以便清楚它分割的位置。如您所见,第二个字符串以重复的第一个字符串开头(没有结束]
)。
你的分裂工作正常。