可以说我有一个数字字符串"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