Java如何提取含空格和字符的字符串中的纯数字?
Java提取字符串中的纯数字解决方案
你的问题出在正则表达式的匹配范围上:^[a-zA-Z\\s]*只会匹配字符串开头的字母和空格,所以后面的"BIS"和空格无法被替换,导致结果残留非数字内容。
要删除所有非数字字符,直接匹配并替换所有非数字内容即可,有两种简洁的写法:
- 使用反向字符类匹配非数字
String prueba = "JPI 101 BIS"; String numero = prueba.replaceAll("[^0-9]", ""); // 最终结果:"101"
[^0-9]表示匹配所有不在0-9范围内的字符(包括字母、空格等),将它们全部替换为空字符串后,就只剩下纯数字。
- 使用预定义的非数字字符类
\\D
String numero = prueba.replaceAll("\\D", "");
\\D是正则中预定义的元字符,等价于[^0-9],写法更简洁,效果完全一致。
内容的提问来源于stack exchange,提问作者pepaSoftware
相关产品推荐
相关产品推荐

