【发布时间】:2017-11-02 15:40:16
【问题描述】:
给定字符串:“1 22a 34 718 u3ou1。”目的是只找到 int 值,在本例中是 1 和 34 和 718。我这样尝试:
String str = "1 22a 34 718 u3ou1.";
str = str.replaceAll("[^-?0-9]+", "*");
System.out.println(Arrays.asList(str.trim()));
它的输出是:[1 22 34 718 3 1]。 输出应为:[1 34 718]。 有人可以找到错误吗?
【问题讨论】:
-
不要把非数字变成数字?
-
字符+数字的每一部分都应该忽略
-
但你没有这样做。您正在提取包含字符的部分并删除字符,让您无法区分“真实”数字和应该忽略的内容。
-
是的,我知道,我不知道例如如何删除“22a”