在Java中基于多个分隔符将字符串拆分为数组
我试图基于多个值将字符串拆分为两个不同的数组 例如,控制台窗口中的用户输入在Java中基于多个分隔符将字符串拆分为数组,java,arrays,string,Java,Arrays,String,我试图基于多个值将字符串拆分为两个不同的数组 例如,控制台窗口中的用户输入 2+4/8*9 我只希望数字在一个数组中 Arr[0] = 2; Arr[1] = 4; Arr[2] = 8; Arr[3] = 9; 然后 Operator[0] = +; Operator[1] = /; Operator[2] = *; 我熟悉只使用一个分隔符的split方法,但是如何根据不同数量的分隔符分割字符串呢 下面是我在互联网上阅读各种文章时尝试的最新代码,但出现了错误 Scanner in
2+4/8*9
我只希望数字在一个数组中
Arr[0] = 2;
Arr[1] = 4;
Arr[2] = 8;
Arr[3] = 9;
然后
Operator[0] = +;
Operator[1] = /;
Operator[2] = *;
我熟悉只使用一个分隔符的split方法,但是如何根据不同数量的分隔符分割字符串呢
下面是我在互联网上阅读各种文章时尝试的最新代码,但出现了错误
Scanner in = new Scanner(System.in);
System.out.println("Enter input");
s = in.toString();
String [] operators = s.split("+|-|*|/"); //Also tried s.split("\\+\\-\\*\\/")
for(int i = 0; i<operators.length; i++) {
System.out.println(operators[i]);
}
Scanner-in=新的扫描仪(System.in);
System.out.println(“输入”);
s=in.toString();
字符串[]运算符=s.split(“+|-|*|/”//还尝试了s.split(“\\+\-\\*\\\/”)
对于(int i=0;i,split
中的字符串参数是正则表达式
*
、+
、-
和/
在正则表达式中具有特殊含义。(星号表示“匹配任意”)
如果要将它们作为精确的符号进行匹配,则需要对其进行转义
要做到这一点,请使用\\*
等。\*
表示正则表达式中的文字星号:在Java中,您需要转义反斜杠;您可以通过编写\\
来实现这一点
所以你应该用类似
split
中的字符串参数是正则表达式
*
、+
、-
和/
在正则表达式中具有特殊含义。(星号表示“匹配任意”)
如果要将它们作为精确的符号进行匹配,则需要对其进行转义
要做到这一点,请使用\\*
等。\*
表示正则表达式中的文字星号:在Java中,您需要转义反斜杠;您可以通过编写\\
来实现这一点
所以你应该用类似
\\+\\-\\\*\\/
使用非数字正则表达式拆分字符串:
String input = "14*6+22";
String[] spl = input.split("\\D");
char[] operation = input.replaceAll("\\w", "").toCharArray();
System.out.println(Arrays.toString(spl));
System.out.println(Arrays.toString(operation));
使用非数字正则表达式拆分字符串:
String input = "14*6+22";
String[] spl = input.split("\\D");
char[] operation = input.replaceAll("\\w", "").toCharArray();
System.out.println(Arrays.toString(spl));
System.out.println(Arrays.toString(operation));
试试这个
String str = "2+2-4*5/6";
str = str.replaceAll(" ", "");
String[] Arr = str.replaceAll("[\\+\\-\\*\\/]", " ").split(" ");
String[] Operator = str.replaceAll("[0-9]", " ").split(" ");
希望有帮助!试试这个
String str = "2+2-4*5/6";
str = str.replaceAll(" ", "");
String[] Arr = str.replaceAll("[\\+\\-\\*\\/]", " ").split(" ");
String[] Operator = str.replaceAll("[0-9]", " ").split(" ");
希望有帮助!使用正则表达式,我们可以拆分表达式并将操作数存储在字符串[]中
String[]t=st.split(“-\\\\\\\\\(\\\\)\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\(\\\\\\\\”)
正则表达式基于“-,#,(,),{,},空格,;,#拆分字符串
对于类字符“(双引号)和(反冲),然后迭代字符串元素并删除字符。使用正则表达式,我们可以拆分表达式并将操作数存储在字符串[]中
String[]t=st.split(“-\\\\\\\\\(\\\\)\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\(\\\\\\\\”)
正则表达式基于“-,#,(,),{,},空格,;,#拆分字符串
对于像“(双引号)和(反冲)这样的字符,然后迭代字符串元素并删除字符。可能重复Use Spring.split()方法,并将正则表达式作为参数传递给该方法。可能重复Use Spring.split()方法方法并将正则表达式作为参数传递给该方法。现在尝试了此操作,得到了以下错误:java.util.Scanner[delimiters=\p{javaWhitespace}][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q\E][positive后缀=][NaN string=\Q?\E][infinity string=\Q?\E]现在尝试此操作,但收到此错误java.util.Scanner[delimiters=\p{javaWhitespace}][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\,][decimal decimal separator=\.][无限字符串=\Q?\E]