3

我有一个字符串,例如"ksl13<br>m4n",我想删除所有非数字字符以获得 int 134。

Integer.parseInt(s)显然是行不通的,但不知道该怎么做。

4

3 回答 3

6

您可以先使用正则表达式:

String s = "ksl13 m4n";
String clean = s.replaceAll("\\D+",""); //remove non-digits

然后你可以使用Integer.parseInt

int i = Integer.parseInt(clean);

并且i将是134

于 2013-06-12T21:56:13.860 回答
3

如果您不想使用正则表达式,可以执行以下操作:

private String buildNumber(String str) {
    StringBuilder strBuilder = new StringBuilder();
    for (int i = 0; i < str.length(); i++) {
        char ch = str.charAt(i);
        if(Character.isDigit(ch)) 
            strBuilder.append(ch);
    }
    return strBuilder.toString();
}

然后你可以把它变成一个intusing Integer#parseInt

有关其他信息,请参阅StringBuilderCharacter

于 2013-06-12T21:58:51.473 回答
1

字符串 str = "ksl13 m4n";
字符串 strArray[] = str.split("\D+"); 会给你整数值数组

于 2013-06-13T10:36:33.887 回答