This question already has answers here:
Java - Splitting String based on multiple delimiters
(4个答案)
6年前关闭。
我正在尝试让用户输入多项式,例如4x + 3x-2x。然后,我希望它将每个术语解析为一个字符串数组。我可以使用它,但是我的问题是我只能用+或-来做,而不能用+和-来做。
如果要在加号/减号之前/之后进行拆分(将运算符保留为自己的String),则需要不消耗它们的正则表达式:
最后一个正则表达式使用环顾四周,它断言但不占用输入(它们是零宽度的匹配项)。
(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