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

我有以下代码:


String generalRequest = "4+6*12/3";

String[] operatorsLine = generalRequest.split("[0-9]+");

结果,我有剩余的空值operatorsLine:


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


然而我渴望一个结果:


“+”、“*”、“/”


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


海绵宝宝撒
浏览 98回答 3
3回答

小怪兽爱吃肉

你可以使用类似的东西:String[] operatorsLine = Arrays.stream(generalRequest.split("[0-9]+"))                                .filter(s -> !s.isEmpty())                                .toArray(String[]::new);

阿波罗的战车

如何为split(String regex, int limit)方法提供第二个参数并使用 2 个输出字段限制它并再次拆分它:String generalRequest = "4+6*12/3";String[] operatorsLine = (generalRequest.split("\\d+", 2)[1]).split("\\d+");第一次拆分将输出一个数组:["", "+6*12/3"],然后获取第一个索引并使用相同的正则表达式再次拆分它。的最终operatorsLine值为[+,*,/]

慕田峪9158850

在这种情况下,您只需要单字符运算符,从字符串中删除所有数字并使用空字符串作为分隔符进行分割即可:String generalRequest = "4+6*12/3";String[] operatorsLine = generalRequest.replaceAll("\\d", "").split("");System.out.println(Arrays.toString(operatorsLine));这打印:[+, *, /]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java