可以說我有一個數字字符串"1234567890"
而在此之外,我想從數字字符串"123"
得到前3位數字。我所看到的一切都需要某種模式來分割一個字符串,但數字可能是任何數字,所以不會有任何模式,但我需要數字的前3位數字。獲取數字字符串的一部分
可以這樣做嗎?
可以說我有一個數字字符串"1234567890"
而在此之外,我想從數字字符串"123"
得到前3位數字。我所看到的一切都需要某種模式來分割一個字符串,但數字可能是任何數字,所以不會有任何模式,但我需要數字的前3位數字。獲取數字字符串的一部分
可以這樣做嗎?
String firstThreeDigits = number.substring(0, 3);
您需要String上的substring
方法。詳情請參閱http://download.oracle.com/javase/6/docs/api/java/lang/String.html#substring%28int,%20int%29。
好像你可以只使用一個子:
number.substring(0, 3);
String myFirstThreeDigitsAsStr = String.valueOf(mynumber).substring(0,3)
如果mynumber是一個字符串,則可以跳過valueOf部分... – 2011-03-17 16:28:24
"1234567890".substring(0, 3);
是你所需要的。 該方法返回一個開始你輸入的第0指數和指數3
如果字符串包含一個數字結束字符串,如你的榜樣,你可以簡單的使用方法substring:
String number = "12345678";
String firstThreeDigits = number.substring(0, 3);
如果你的意思是你需要搶了先數出一個字符串,並獲得第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);
}
}
好吧,我(和其他兩個人)已經發布了簡單的答案,但我猜還有更多。你需要驗證你的輸入實際上是一個數字,還是做一些其他處理? – Pops 2011-03-17 16:27:14