Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用模式拆分字符串时结果为空_Java_Regex_Java 8_Functional Programming_Java Stream - Fatal编程技术网

Java 使用模式拆分字符串时结果为空

Java 使用模式拆分字符串时结果为空,java,regex,java-8,functional-programming,java-stream,Java,Regex,Java 8,Functional Programming,Java Stream,我有以下代码: String generalRequest = "4+6*12/3"; String[] operatorsLine = generalRequest.split("[0-9]+"); 结果,我在运算符行中有多余的空值: “”、“+”、“*”、“/” 我希望有一个结果: “+”、“*”、“/” 如何使用String.split()方法跳过向数组中添加”值?您可以使用以下方法: String[] operatorsLine = Arrays.stream(generalRequ

我有以下代码:

String generalRequest = "4+6*12/3";
String[] operatorsLine = generalRequest.split("[0-9]+");
结果,我在
运算符行
中有多余的空值:

“”、“+”、“*”、“/”

我希望有一个结果:

“+”、“*”、“/”



如何使用
String.split()
方法跳过向数组中添加
值?

您可以使用以下方法:

String[] operatorsLine = Arrays.stream(generalRequest.split("[0-9]+"))
                               .filter(s -> !s.isEmpty())
                               .toArray(String[]::new);

在本例中,您只需要使用单字符运算符,
从字符串中删除所有数字,并使用空字符串作为delimeter进行拆分将起作用:

String generalRequest = "4+6*12/3";
String[] operatorsLine = generalRequest.replaceAll("\\d", "").split("");
System.out.println(Arrays.toString(operatorsLine));
这张照片是:

[+, *, /]

将第二个参数提供给该方法,并将其限制为2个输出字段,然后再次拆分它,怎么样

String generalRequest = "4+6*12/3";
String[] operatorsLine = (generalRequest.split("\\d+", 2)[1]).split("\\d+");
第一次拆分将输出一个数组:
[“”,“+6*12/3”]
,然后获取第一个索引并使用相同的正则表达式再次拆分它


运算符行
的最终值将是
[+,*,/]

您想要的结果是什么?@Ghanima“+”,“*”,“/”谢谢,但我得到了下一个编译错误:错误:(51102)java:methodtoarray接口java.util.stream.stream无法应用于给定类型;必需:找到java.util.function.IntFunction:java.lang.String[]原因:无法在
新字符串[0]
中推断类型变量A(参数不匹配;java.lang.String[]无法转换为java.util.function.IntFunction)!谢谢你,朋友)。我也总是遇到麻烦(函数生成器)没问题,我很乐意帮助:)