如何从java中的输入字符串中提取数值

smy*_*dsh 10 java string

如何仅从输入字符串中提取数值?

例如,输入字符串可能如下所示:

String str="abc d 1234567890pqr 54897";
Run Code Online (Sandbox Code Playgroud)

我只想要数值ie,"1234567890""54897".所有字母和特殊字符都将被丢弃.

npi*_*nti 22

您可以使用该类中的.nextInt()方法Scanner:

将输入的下一个标记扫描为int.

或者,您也可以这样做:

String str=" abc d 1234567890pqr 54897";

Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(str);
while(m.find())
{
    System.out.println(m.group(1));
}
Run Code Online (Sandbox Code Playgroud)


tbl*_*tbl 11

String str=" abc d 1234567890pqr 54897";
Pattern pattern = Pattern.compile("\\w+([0-9]+)\\w+([0-9]+)");
Matcher matcher = pattern.matcher(str);
for(int i = 0 ; i < matcher.groupCount(); i++) {
  matcher.find();
  System.out.println(matcher.group());
}
Run Code Online (Sandbox Code Playgroud)


Pau*_*nis 8

使用yourString.toCharArray();Then 将字符串拆分为char数组然后遍历字符并使用Character.isDigit(ch);以确定这是否为数值.或者遍历整个字符串并使用str.charAt(i).例如:

public static void main(String[] args) {
    String str = "abc d 1234567890pqr 54897";
    StringBuilder myNumbers = new StringBuilder();
    for (int i = 0; i < str.length(); i++) {
        if (Character.isDigit(str.charAt(i))) {
            myNumbers.append(str.charAt(i));
            System.out.println(str.charAt(i) + " is a digit.");
        } else {
            System.out.println(str.charAt(i) + " not a digit.");
        }
    }
    System.out.println("Your numbers: " + myNumbers.toString());
}
Run Code Online (Sandbox Code Playgroud)


Rei*_*eus 5

你可以这样做:

Matcher m = Pattern.compile("\\d+").matcher(str);
while (m.find()) {
   System.out.println(m.group(0));
}
Run Code Online (Sandbox Code Playgroud)