Java split(),使用包含特定字符的整个单词作为分隔符

时间:2016-06-03 19:03:27

标签: java regex string

String string = "3 5 3 -4 2 3 ";

我想在这里使用split(),但我需要一个分隔符-4。我不知道哪些数字是负数,我需要使用split来将正数分组到单独的数组中。

有可能吗?

编辑:

我想用:

String[] parts = string.split(????);

并收到

parts[0] = "3 5 3"
parts[1] = "2 3"

3 个答案:

答案 0 :(得分:7)

根据我在评论中提到的内容,您可以使用-\\d+进行拆分。 它找到-后跟任意位数的所有位置。如果我们想要

,我们可以稍后修剪数组元素

Java代码

String Str = new String("3 5 3 -4 2 3");
String[] x = Str.split("-\\d+");

for (String retval: x){
   System.out.println(retval.trim());
}

<强> Ideone Demo

答案 1 :(得分:2)

您可以使用replace方法搜索给定字符串(在本例中为-4)并将其替换为您选择的分隔符,可能是管道线(|) 。然后,您可以使用split方法并使用现在插入的分隔符来拆分数组。

string = string.replace(replaceString, "|");
string[] parts = string.split('|');

不可否认,这是一个小迂回,但它快速,简单,并且可以工作。

答案 2 :(得分:0)

使用StringUtils你可以做这样的事情

public static void main(String[] args) {
    String splitMe="123-457";
    String [] newArray=StringUtils.split(splitMe, "-4");


    for (String val:newArray){
        System.out.println(val.toString());
    }
}

第一个索引的输出为123,第二个索引的输出为57