java - 如何在 Java 中使用正则表达式拆分后删除空结果?

标签 java regex

我想从给定的字符串中找到所有数字(所有数字都与字母混合但用空格分隔)。我尝试拆分输入字符串但是当检查结果数组时我发现有很多空字符串,那么如何更改我的拆分正则表达式以删除此空格?

Pattern reg = Pattern.compile("\\D0*");
String[] numbers = reg.split("asd0085 sa223 9349x");
for(String s:numbers){
    System.out.println(s);
}

结果:

85


223
9349

我知道我可以遍历数组并删除空结果。但是如何只使用正则表达式呢?

最佳答案

如果您使用的是 java 8,您可以像这样在 1 个语句中完成:

String[] array = Arrays.asList(s1.split("[,]")).stream().filter(str -> !str.isEmpty()).collect(Collectors.toList()).toArray(new String[0]);

关于java - 如何在 Java 中使用正则表达式拆分后删除空结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25451331/

相关文章:

java - MMO如何处理真人游戏的每一刻为成千上万的玩家计算和发送数据包?

java - 静态变量与单例变量

javascript - 正则表达式:不要在组中包含子字符串

java - 正则表达式返回方括号之间的字符(但不是括号)

java - 如何用一个替换 'n' 反斜杠 (\)?

java - XWPF 表格单元格中的新段落

Java - 如何等待 uploadFileToBlockBlob 完成?

java - 在屏幕中间绘制文本

ruby - 使用 Ruby 将空格插入字符串

php - 使用正则表达式和 php 从 html 中提取 javascript 对象