我有以下代码:String generalRequest = "4+6*12/3";String[] operatorsLine = generalRequest.split("[0-9]+");结果,我有剩余的空值operatorsLine:“”、“+”、“*”、“/”然而我渴望一个结果:“+”、“*”、“/”如何""使用方法跳过将值添加到数组中String.split()?
3 回答
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
你可以使用类似的东西:
String[] operatorsLine = Arrays.stream(generalRequest.split("[0-9]+")) .filter(s -> !s.isEmpty()) .toArray(String[]::new);
阿波罗的战车
TA贡献1862条经验 获得超6个赞
如何为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
TA贡献1794条经验 获得超7个赞
在这种情况下,您只需要单字符运算符,
从字符串中删除所有数字并使用空字符串作为分隔符进行分割即可:
String generalRequest = "4+6*12/3";
String[] operatorsLine = generalRequest.replaceAll("\\d", "").split("");
System.out.println(Arrays.toString(operatorsLine));
这打印:
[+, *, /]
添加回答
举报
0/150
提交
取消