有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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) 个答案

  1. # 1 楼答案

    使用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

  2. # 2 楼答案

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

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

    诚然,这有点迂回,但它快速、简单,而且会奏效

  3. # 3 楼答案

    根据我在评论中提到的内容,您可以使用-\\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