我遇到了将字符串插入到String []数组的问题。我有以下字符串:Java:棘手的替换字符串
12343,"Den Haag, Willem de Zwijgerlaan",lol,"HI",ZF-32,"TZ,45,38"
,或者例如这个字符串:
"Another String",44,33,"TZ,38",ok
这仅仅是数以百万计的一个字符串我的应用是漓。问题是在这种情况下的分隔符是,
字符。然而,它有时会被烧成一个领域。现在
,你可以看到"Den Haag, Willem de Zwijgerlaan"
有性格,但是这是属于外地,而不是算作一个分隔符。
我想出了下面的代码,我坚持。
String before = "12343,\"Den Haag, Willem de Zwijgerlaan\",DH1,\"HI\",ZF-32,\"TZ,45,38\"";
System.out.println(before);
int first = before.indexOf("\"");
if(first != -1) {
Boolean firstTime = true;
int firstPos = 0;
int secondPos = 0;
for (int i = -1; (i = before.indexOf("\"", i + 1)) != -1;) {
if(firstTime) {
firstPos = i;
firstTime = false;
} else {
secondPos = i;
System.out.println(before.substring(firstPos+1, secondPos));
firstTime = true;
}
}
}
这导致:
12343,"Den Haag, Willem de Zwijgerlaan",lol,"HI",ZF-32,"TZ,45,38"
Den Haag, Willem de Zwijgerlaan
HI
TZ,45,38
我想一个String []数组看起来像这样:
String[] array = {"12343", "Den Haag, Willem de Zwijgerlaan", "lol", "HI", "ZF-32", "TZ,45,38"};
也许你应该只是看的分隔符\ – Jeeter
答案是一样的任何类似的问题:**不使用正则表达式对非正规字符串**。使用CSV解析器。这就是他们的目的。 –
或安排将数据作为JSON发送。 –