如何从 java 中的字符串中仅提取数字?
How to extract only number from a string in java?
假设我有一个包含以下内容的字符串:hello 14:12
.
现在我只想提取数字并在两个变量中有两个单独的值,如下所示:first_num 值应该是 int,即 first_num = 14,第二个变量应该在之后存储数字冒号 (:
) 即 second_num = 12.
ReplaceAll 是最好的解决方案
String str = "hello 14:12";
str = str.replaceAll("[^0-9]+", " ");
System.out.println(Arrays.asList(str.trim().split(" ")));
这样就可以只获取数组中的数字了。
您可以使用正则表达式来解决问题
public static List<Integer> extractNumbers(String s){
List<Integer> numbers = new ArrayList<Integer>();
Pattern p = Pattern.compile("\d+");
Matcher m = p.matcher(s);
while(m.find()){
numbers.add(Integer.parseInt(m.group()));
}
return numbers;
}
假设我有一个包含以下内容的字符串:hello 14:12
.
现在我只想提取数字并在两个变量中有两个单独的值,如下所示:first_num 值应该是 int,即 first_num = 14,第二个变量应该在之后存储数字冒号 (:
) 即 second_num = 12.
ReplaceAll 是最好的解决方案
String str = "hello 14:12";
str = str.replaceAll("[^0-9]+", " ");
System.out.println(Arrays.asList(str.trim().split(" ")));
这样就可以只获取数组中的数字了。
您可以使用正则表达式来解决问题
public static List<Integer> extractNumbers(String s){
List<Integer> numbers = new ArrayList<Integer>();
Pattern p = Pattern.compile("\d+");
Matcher m = p.matcher(s);
while(m.find()){
numbers.add(Integer.parseInt(m.group()));
}
return numbers;
}