使用Android从包含字母数字的字符串中提取数字

6

我需要从String str="sdfvsdf68fsdfsf8999fsdf09"中提取数字值。 在安卓系统中,如何从字母数字混合的字符串中提取数字?


3
好的,请提供需要翻译的内容。 - assylias
3个回答

35
String str="sdfvsdf68fsdfsf8999fsdf09";
String numberOnly= str.replaceAll("[^0-9]", "");

更新:

String str="fgdfg12°59'50\" Nfr | gdfg: 80°15'25\" Efgd";
String[] spitStr= str.split("\\|");

String numberOne= spitStr[0].replaceAll("[^0-9]", "");
String numberSecond= spitStr[1].replaceAll("[^0-9]", "");

如果使用这个,我只得到字母,但我需要的是数字值。 - Prasanth_AndroidJD
2
@Prasanth_AndroidJD:你可以考虑选择这个答案,并将其标记为正确的解决方案,以配合你的感谢。;-) - Siddharth Lele
@Prasanth_AndroidJD 请使用以下这个字符串替换你的字符串:String str = "fgdfg12°59'50" Nfr | gdfg: 80°15'25" Efgd";。 - Mohammed Azharuddin Shaikh
是的,你说得对,但我的问题是我在表格中有一个字符串值,如下所示:String str= "fgdfg12°59'50" Nfr | gdfg: 80°15'25" Efgd",那么我该如何在每个双引号(")前添加\?谢谢您的帮助。 - Prasanth_AndroidJD
通过游标从表中获取值,赋给字符串= cursor.getString(); String numberOnly= string.str.replaceAll("[^0-9]", ""); - Mohammed Azharuddin Shaikh
显示剩余3条评论

4
public static String getOnlyNumerics(String str) {

    if (str == null) {
        return null;
    }

    StringBuffer strBuff = new StringBuffer();
    char c;

    for (int i = 0; i < str.length() ; i++) {
        c = str.charAt(i);

        if (Character.isDigit(c)) {
            strBuff.append(c);
        }
    }
    return strBuff.toString();
}

1
public static int extractNumberFromAnyAlphaNumeric(String alphaNumeric) {
    alphaNumeric = alphaNumeric.length() > 0 ? alphaNumeric.replaceAll("\\D+", "") : "";
    int num = alphaNumeric.length() > 0 ? Integer.parseInt(alphaNumeric) : 0; // or -1 
    return num;
}

您可以根据需要将该值设置为0或-1(如果在字母数字串中未找到任何数字时该怎么办)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接