如何在 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());
编辑修改为允许初始负号
这是我的代码:
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());
编辑修改为允许初始负号