首页 > 解决方案 > 从 Java 上的字符串中获取第一个数字

问题描述

假设我有一个以数字开头的字符串。如何获取/提取所有第一个数字并将它们转换为整数?不想要字符串上的所有数字,我想要从第一个数字到最后一个数字之前的任何其他字母或字符。

例如:

 String s= "5634-abofrda/+l8908"; // 5634
 String str="78695t08675jgk"; // 78695

如何获得 5634 号码?我正在寻找一个通用的解决方案,而不是针对所描述的案例。

标签: javastringparsing

解决方案


此方法可用于在找到另一个字符之前返回一个数字

static int getNumbers(String s) {

    String[] n = s.split(""); //array of strings
    StringBuffer f = new StringBuffer(); // buffer to store numbers

    for (int i = 0; i < n.length; i++) {
        if((n[i].matches("[0-9]+"))) {// validating numbers
            f.append(n[i]); //appending
        }else {
            //parsing to int and returning value
            return Integer.parseInt(f.toString()); 
        }   
    }
    return 0;
 }

用法:

getNumbers(s);
getNumbers(str);

输出:

5634
78695

推荐阅读