2011-03-17 74 views
0

可以说我有一个数字字符串"1234567890"而在此之外,我想从数字字符串"123"得到前3位数字。我所看到的一切都需要某种模式来分割一个字符串,但数字可能是任何数字,所以不会有任何模式,但我需要数字的前3位数字。获取数字字符串的一部分

可以这样做吗?

+0

好吧,我(和其他两个人)已经发布了简单的答案,但我猜还有更多。你需要验证你的输入实际上是一个数字,还是做一些其他处理? – Pops 2011-03-17 16:27:14

回答

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

好像你可以只使用一个子:

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

如果mynumber是一个字符串,则可以跳过valueOf部分... – 2011-03-17 16:28:24

0

"1234567890".substring(0, 3);是你所需要的。 该方法返回一个开始你输入的第0指数和指数3

0

如果字符串包含一个数字结束字符串,如你的榜样,你可以简单的使用方法substring

String number = "12345678"; 
String firstThreeDigits = number.substring(0, 3); 
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); 
     } 
    }