繁体   English   中英

如何在字符串中找到 int 值

[英]How can I find int values within a string

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

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

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

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

然后你可以使用Integer.parseInt

int i = Integer.parseInt(clean);

i将是134

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

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();
}

然后您可以使用Integer#parseInt将其转换为int

有关其他信息,请参阅StringBuilderCharacter

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

    input          output

    abcd1234        1234
    abcd            0
    123abcd456      123

仅用于返回字符串中可用的第一个数字序列

public static int intValueOfString( String strVal) {
    
    char[] charArry= strVal.toCharArray();
    List<Character> myDigitcharList = new ArrayList();
    int isDegitsAvailable = 0;
    
    for (int i = 0 ; i < charArry.length ; i++ ) {
        if (Character.isDigit(strVal.charAt(i))) {
            myDigitcharList.add(charArry[i]);
            isDegitsAvailable++;
        } else {
            
            if (isDegitsAvailable > 0) {
                break;
            }
            
        }
    }    
    
    StringBuilder sb  = new StringBuilder("");
    
    if (myDigitcharList.size() > 0) {
        for (Character x : myDigitcharList) {
            sb.append(x);
        }
        return Integer.valueOf(sb.toString());
    }
    
    return 0; 
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM