This question already has answers here:
Java - Splitting String based on multiple delimiters
                                
                                    (4个答案)
                                
                        
                6年前关闭。
            
        

我正在尝试让用户输入多项式,例如4x + 3x-2x。然后,我希望它将每个术语解析为一个字符串数组。我可以使用它,但是我的问题是我只能用+或-来做,而不能用+和-来做。

    //instance variables
    Scanner scan = new Scanner(System.in);
    String polynomial = "";

    //takes in the polynomial
    System.out.println("Enter a polynomial");
    polynomial = scan.next();

    //print the polynomial
    System.out.println("\n" + "Your polynomial is "+ polynomial);

    //parse the polynomial into a StringArray
    String[] polyArray = polynomial.split("\\-");


最佳答案

如果要对正负进行分割,这会消耗定界符:

String[] polyArray = polynomial.split("[-+]");


如果要在加号/减号之前/之后进行拆分(将运算符保留为自己的String),则需要不消耗它们的正则表达式:

String[] polyArray = polynomial.split("(?=[-+])|(?<=[-+])");


最后一个正则表达式使用环顾四周,它断言但不占用输入(它们是零宽度的匹配项)。

关于java - 如何在Java中使用split方法但使用2个不同的分隔符来解析字符串? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19749647/

10-10 11:43