获取字符串"600sp"的整数部分的最佳方法是什么?

Bra*_*ein 10 java string integer type-conversion

我有一个字符串,说"600sp",我希望从中得到整数部分(600).

如果我这样做,Integer.valueOf("600sp")由于字符串中遇到的非数字值"s",我得到一个例外.

获取整数部分的最快最干净的方法是什么?

谢谢!

Chu*_*Lee 17

如果您的字符串格式始终是数字后跟一些字符,那么试试这个

mystr.split("[a-z]")[0]
Run Code Online (Sandbox Code Playgroud)


Jhe*_*ico 7

根据您输入的限制,您最好使用正则表达式.

    Pattern p = Pattern.compile("(\\d+)");
    Matcher m = p.matcher("600sp");
    Integer j = null;
    if (m.find()) {
        j = Integer.valueOf(m.group(1));
    }
Run Code Online (Sandbox Code Playgroud)

这个正则表达式翻译为'给我一串连续数字,在字符串的开头有至少1位'.如果你有其他约束,比如解析实数而不是整数,那么你需要修改代码.