如何在java中仅从字符串中提取数字?
假设我有一个字符串,包含:hello 14:12如何在java中仅从字符串中提取数字?,java,extract,Java,Extract,假设我有一个字符串,包含:hello 14:12 现在我只想提取数字,在两个变量中有两个独立的值,如下所示:first_num value应该是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()
现在我只想提取数字,在两个变量中有两个独立的值,如下所示:first_num value应该是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(" ")));
这样,您只能获得数组中的数字。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;
}
您可以使用正则表达式来解决这个问题
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;
}