2011-03-17 86 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); 
     } 
    }