我想生成一个数组,该数组根据其中的一个文本字符串(称为"stop"
)拆分字符串,并且我还想根据新行的存在进行拆分(\n
)。
但是,根据新行的存在,它似乎没有拆分,我该怎么做?到目前为止,我有:
String [] myArray = str.split(“stop”);
但是我希望包含拆分是一个新行,但我似乎无法通过我尝试过的方法来做到这一点。
返回的数据是一个字符串,其中包含以下内容:
DATA1 stop
的 DATA2 stop
的 DATA3 \n
所以我想将字符串data1和data2放入数组中,然后将data3放入数组中而不需要额外的行。
答案 0 :(得分:5)
使用split("stop|\\n")
。 String#split
的参数是一个包含正则表达式的String。
查看http://www.vogella.de/articles/JavaRegularExpressions/article.html和http://www.regular-expressions.info/java.html。他们确切地讨论了你的问题。
答案 1 :(得分:0)
请记住,如果您想获得独立于系统的行分隔符,最好使用:
System.getProperty("line.separator");
答案 2 :(得分:0)
不应该像这样的工作:
String[] a=str.split("(stop|\\n)");
虽然未经测试。
答案 3 :(得分:0)
试试这个,
String number = "data1stopdata2stopdata3\\n";
String[] number_array = number.split("stop|\\n");
for(String s: number_array)
System.out.println(s.replace("\\n",""));
输出= data1
data2
data3
答案 4 :(得分:0)
使用str.split("Stop|\\n");
例如
String str = "Data1\nData2StopData";
String[] a = str.split("Stop|\\n");
System.out.println(Arrays.toString(a));
将提供[Data1,Data2,Data]
答案 5 :(得分:0)
除了给定的答案之外,我宁愿用户split("stop|\n")
而不是split("stop|\\n")
。第一个表达式使用Java内置的换行支持,而在第二个表达式中,正则表达式“\ n”被解释为换行符。因此第一个表达式的开销较少。
答案 6 :(得分:-2)
您可以使用Google Guava Splitter。on(模式p)方法。将您的模式设置为包含“停止”以及“\\ r?\\ n”