如何在 Android 中将数字与文本分开?

How can Separate a number from a text in Android?

这是我的代码:

String addchar = "";
String tempchar;
int len = strline.length();
char[] chars = strline.toCharArray();
int amount = 0;

for (int i = 0; i < len; i++) {
    tempchar = String.valueOf(chars[i]);
    if (tempchar == "0" || tempchar == "1" || tempchar == "2" || tempchar == "3" || tempchar == "4" || tempchar == "5" || tempchar == "6" || tempchar == "7" || tempchar == "8" || tempchar == "9") {
        addchar=tempchar+addchar;
    }
}

amount=Integer.parseInt(addchar);

但是当 运行 这段代码时,我看到 amount 是空的! 我想提取 strline

中的数字

尝试使用 Matcher

  Matcher matcher = Pattern.compile("\d+").matcher("a22dsdddd212");
while(matcher.find()) {
    Log.e("number :-> ",matcher.group()+"");
}

如果你想要所有数字字符,你可以这样使用replaceALL:

String numericString = strline.replaceAll("[^0-9]", "");

然后使用 ParseInt。

希望对您有所帮助。

比 Nilesh 的回答略逊一筹,但作为替代:

StringBuilder sb = new StringBuilder();

for (char c : strline.toCharArray()) {
    if ((sb.length() == 0 && "-".equals(c)) || Character.isDigit(c)) sb.append(c);
}

int amount = Integer.parseInt(sb.toString());

编辑修改为允许初始负号