我正在尝试将String转换为ArrayList,但我的案例中的问题与我看到的完全不同。
我的字符串是这样的:
String data = [0 | John | 9999999999 | No.54,Street | New York,1 | Bash | 9898989898 | No.5,Road 2 | City 2]
分隔 :
0 | John | 9999999999 | No.54,Street | New York
1 | Bash | 9898989898 | No.5,Road 2 | City 2
这里的第一个位置是ID,然后是姓名,下一个联系电话,下一个地址,最后一个城市......
由于地址字段中的“,”,data.split无法在此处运行。
有没有办法将此字符串转换为arrayList或使用不同方法的任何建议?
此致
LOKESH
修改 我可能有额外的字段称为注释,其中可能包含管道:
示例:
0 |姓名|号码|地址|城市| 我可能会加入|明天
这里“我可能会加入|明天”是单句。
编辑2: 我找到了解决方案..
我刚刚更换了,并在服务器端使用***和*****(星号)在列表中输入管道......
感谢大家的建议......: - )
答案 0 :(得分:0)
您的字段由|
分隔。试试.split("|")
。
答案 1 :(得分:0)
使用
拆分字符串String[] array = data.split("|");
之后
ArrayList<Your Object> arraylist = new ArrayList<Your Object>(Arrays.asList(array));
答案 2 :(得分:0)
其他答案没有逃脱管道符号|
。因此他们不会工作。
这是一个有效的例子:
String s = "0|John|9999999999|No.54, Street|New York";
String[] array = s.split("\\|");
for(String word : array) System.out.println(word);
结果:
0
约翰
9999999999个
街54号 纽约
答案 3 :(得分:0)
您可以使用以下正则表达式,
.split("(?<=[a-zA-Z]),")
仅当,
前面有字母表时才会匹配。因此,只要地址字段中的,
跟随一个数字(如示例中所示),它就会起作用。