String s = "Class:class shapes_assignment.SquareX-Coordinate:314Y-Coordinate:50";
Pattern pat = Pattern.compile("(\\d)+");
Matcher mat = pat.matcher(s);
while(mat.find()){
System.out.println(mat.group()); // You can store these numbers in variables
}
您可以使用以下代码转换和存储数字:
ArrayList<Integer> numbers = new ArrayList<Integer>();
while(mat.find()){
System.out.println(mat.group());
numbers.add(Integer.parseInt(mat.group()));
}
# 2 楼答案
你可以使用Matcher.matches():
String str = "Class:class shapes_assignment.SquareX-Coordinate:314Y-Coordinate:50";
Matcher m = Pattern.compile(".*?(\\d+).*?(\\d+).*").matcher(str);
if (m.matches()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
# 1 楼答案
使用正则表达式:
您可以使用以下代码转换和存储数字:
# 2 楼答案
你可以使用
Matcher.matches()
:输出:
# 3 楼答案
迭代字符串的每个字符。如果字符匹配0-9,则将其添加到新字符串foo中。当字符不是连续顺序的数字时,停止向该字符串添加字符
完成后,将字符串foo转换为整数
我希望这有帮助
# 4 楼答案
您可以在非数字字符上拆分字符串:
请注意,如果输入以非数字字符开头,则第一个元素将是空字符串
然后可以用
Integer.parseInt()
解析数组中的每个非空字符串完整工作代码: