Java - 基于String和新行拆分String

时间:2012-02-03 14:41:26

标签: java arrays string

我想生成一个数组,该数组根据其中的一个文本字符串(称为"stop")拆分字符串,并且我还想根据新行的存在进行拆分(\n )。

但是,根据新行的存在,它似乎没有拆分,我该怎么做?到目前为止,我有:

String [] myArray = str.split(“stop”);

但是我希望包含拆分是一个新行,但我似乎无法通过我尝试过的方法来做到这一点。

返回的数据是一个字符串,其中包含以下内容:

DATA1 stop DATA2 stop DATA3 \n

所以我想将字符串data1和data2放入数组中,然后将data3放入数组中而不需要额外的行。

7 个答案:

答案 0 :(得分:5)

使用split("stop|\\n")String#split的参数是一个包含正则表达式的String。

查看http://www.vogella.de/articles/JavaRegularExpressions/article.htmlhttp://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”