java - Java正则表达式中字符串的单个数字
问题描述
给定一个字符串
1 3 2 1 9 1 bla 3 4 3
我找到
/b[1-4]/b
将只返回显示1 2 3 4
的数字但String[] input = args[0].split("\b[1-4]\b");
不返回
{"1","3","2","1","1","3","4","3"}
解决方案
我假设您只需要 1 到 4 之间的数字。简单的拆分是不够的。一种方法可能是这样的:
String str = "1 3 2 1 9 1 bla 3 4 3";
String[] splitAndFilter = Pattern.compile("\\s+")
.splitAsStream(str)
.filter(s -> s.matches("[1-4]"))
.toArray(String[]::new);
System.out.println(Arrays.toString(splitAndFilter));
推荐阅读
- php - 多维数组在没有附加值时丢失其索引
- sql - 消除子查询以提高查询性能
- multiple-inheritance - Raku 如何处理钻石问题(多重继承)?
- c# - 如何通过实体框架中数据库的一列上的多个值与其他列上的不同值获取数据?
- android - 如何解决应用程序已在 android studio 模拟器中停止(片段寻呼机适配器)
- javascript - MongoDB 按月分组
- reactjs - 如何将管理面板添加到现有 ASP.NET Core MVC 项目
- java - 在 Java 中执行非线程安全可选操作的最快方法
- spring - Maven Failsafe 集成测试类路径
- javascript - Push duplicate items into a separate array in Javascript with for loop?