我的字符串看起来像这样:
[item 1, item2, item3]
我想要的输出是:
item 1
item2
item3
我写了这段代码:
String text = "[item 1, item2, item3]";
String[] text_output = text.split(", |\\[|\\]");
for(String item:text_output)
fileOutStream.write(("\n"+item).getBytes());
并且我得到的输出是正确的,区别在于输出数组中第一个元素是空字符串。我做错了什么?
答案 0 :(得分:3)
您已请求将字符串拆分为[
和]
,以便系统遵循并认为[
之前的空白区域是您的第一个元素。您可以通过多种方式继续:
text.replaceAll("\\[|\\]", "")
; text.substring(1, text.length()-1)
; 使用正匹配而不是否定匹配:
Pattern.compile("[^,\\[\\]]+").matcher().find()
答案 1 :(得分:0)
当您尝试拆分并且第一个字符是您要拆分的字符时会发生这种情况。你应该创建一个新的数组,而不是选择第一个元素(空元素)。
String[] text_output = text.substring(1).split(", |\\[|\\]");
如果你想删除第一个字符,你可以使用它,你将拥有你想要的输出。请记住,当您尝试拆分并且第一个字符是拆分之一时会发生这种情况。
答案 2 :(得分:0)
首先是空字符串,因为你也使用\\[
进行拆分,所以你的字符串中的第一个元素是[
。只是忽略你的第一个元素。