首页 > 解决方案 > 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"}

标签: javaregexsplit

解决方案


我假设您只需要 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));

推荐阅读