Android字符串到ArrayList - 逗号问题

时间:2015-07-07 15:12:03

标签: java android arraylist

我正在尝试将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: 我找到了解决方案..

  

我刚刚更换了,并在服务器端使用***和*****(星号)在列表中输入管道......

感谢大家的建议......: - )

4 个答案:

答案 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号   纽约

See here

答案 3 :(得分:0)

您可以使用以下正则表达式, .split("(?<=[a-zA-Z]),")

仅当,前面有字母表时才会匹配。因此,只要地址字段中的,跟随一个数字(如示例中所示),它就会起作用。