Java-从字符串中获取整数

Java-从字符串中获取整数,java,string,integer,Java,String,Integer,假设我有这样一个字符串: 类别:类别形状分配。平方坐标:314Y坐标:50 如何从中提取两个数字(即314和50)?使用正则表达式: String s = "Class:class shapes_assignment.SquareX-Coordinate:314Y-Coordinate:50"; Pattern pat = Pattern.compile("(\\d)+"); Matcher mat = pat.matcher(s); while(mat.find()){

假设我有这样一个字符串:

类别:类别形状分配。平方坐标:314Y坐标:50


如何从中提取两个数字(即314和50)?

使用正则表达式:

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()));  
}
您可以使用以下代码转换和存储数字:

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()));  
}
ArrayList number=new ArrayList();
while(mat.find()){
System.out.println(mat.group());
add(Integer.parseInt(mat.group());
}

迭代字符串的每个字符。如果字符与0-9匹配,则将其添加到新字符串foo中。当字符不是连续顺序的数字时,停止向该字符串添加字符

完成后,将字符串foo转换为整数


我希望这有帮助。

您可以将字符串拆分为非数字字符:

String s = "Class:class shapes_assignment.SquareX-Coordinate:314Y-Coordinate:50"; 
String[] numbers = s.split("[^\\d]+");
请注意,如果输入以非数字字符开头,则第一个元素将是空字符串

然后可以使用
Integer.parseInt()
解析数组中的每个非空字符串

完整工作代码:

public static void main(String[] args) {
    String s = "Class:class shapes_assignment.SquareX-Coordinate:314Y-Coordinate:50";
    String[] numbers = s.split("[^\\d]+");
    for (String number : numbers) {
        if (!number.isEmpty()) {
            int i = Integer.parseInt(number);
            System.out.println("i = " + i);
        }
    }
}

您可以使用
Matcher.matches()

输出:

314
50