从包含字母和数字的字符串中提取所有数字

时间:2019-10-10 19:14:27

标签: java string

我在从字符串中提取数字时遇到麻烦。我必须用两个字符串中的仅数字组成一个新整数。一个例子是:

弦轴承='N30W';

然后我将拥有一个整数变量,该变量将输出“ 30” 到目前为止,我已经尝试过:

  //digitsOfBearing = Integer.parseInt(bearing.replaceAll("[^0-9]", ""));
  //digitsOfBearing = Integer.parseInt(bearing.substring(1, bearing.length()-1));
  //digitsOfBearing = bearing.replaceAll("\\D+","");

但是我所有的结果都以错误结尾:

线程“ main”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-2

谢谢

1 个答案:

答案 0 :(得分:0)

这可以做。

public static void main(String[] args) {
    String str = "1fnvkk14718jafds";
    String digits = getDigits(str);
    long number = Long.parseLong(digits);
    System.out.println(number);
}

private static String getDigits(String str) {
    StringBuilder stringBuilder = new StringBuilder();
    for (char c : str.toCharArray()) {
        if (Character.isDigit(c)) {
            stringBuilder.append(c);
        }
    }
    return stringBuilder.toString();
}