获取数字字符串的一部分

时间:2011-03-17 16:23:15

标签: java string

假设我有一个数字字符串"1234567890",其中我想从数字字符串"123"获取前3位数字。我所看到的一切都需要某种模式来分割字符串,但数字可以是任何数字,所以不会有任何模式,但我需要数字的前3位数。

可以这样做吗?

7 个答案:

答案 0 :(得分:2)

你需要String上的substring方法。有关详细信息,请参阅http://download.oracle.com/javase/6/docs/api/java/lang/String.html#substring%28int,%20int%29

答案 1 :(得分:0)

String firstThreeDigits = number.substring(0, 3);

答案 2 :(得分:0)

好像你可以使用子字符串:

number.substring(0, 3);

答案 3 :(得分:0)

String myFirstThreeDigitsAsStr = String.valueOf(mynumber).substring(0,3)

答案 4 :(得分:0)

"1234567890".substring(0, 3);就是您所需要的。 该方法返回一个String,该String从输入的第0个索引处开始,以索引3结束。

答案 5 :(得分:0)

如果字符串包含数字,就像您的示例一样,您只需使用substring方法:

String number = "12345678";
String firstThreeDigits = number.substring(0, 3);

答案 6 :(得分:0)

如果你的意思是你需要从字符串中获取第一个数字并获得前3个字符,你可以这样做:

public class NumberFinder {

    public int findNumber(String string) throws NumberFormatException{
        String regex = "\\d+"; //matches one or more digits
        Pattern myPattern = Pattern.compile(regex);
        Matcher myMatcher = myPattern.matcher(string);
        String numString = new String();
        while (myMatcher.find()) {
            numString = myMatcher.group(); //returns whole match
        }
        String numSub = numString.length() >= 3 ? numString.substring(0, 3).toString() : "Not Enough Numbers";
        System.out.println(string);
        System.out.println(numString);
        System.out.println(numSub);
        return Integer.parseInt(numSub);
    }
}

    public static void main(String[] args) {
        String string = "ABCD1242DBG";
        try {
            new NumberFinder().findNumber(string);
        } catch (NumberFormatException e) {
            System.out.println("Not enough numbers in " + string);
        }
    }