String team1=z.nextLine(), team2;
int num1, num2;
num1 = z.Int();
team1 = z.nextLine();
team1 = team1.replaceAll("[0-9]","");
System.out.println(team1 + " " + num1);
我需要扫描一个内容为“Alpha Beta Gamma 52”的文本文件。字符串“Alpha Beta Gamma”必须放在 team1 中,而 52 必须放在 num1 中。当我使用 .replaceAll 时,它会删除阻碍我获得整数的 52。
最佳答案
正如您所注意到的,一旦您从字符串中删除值;该值不在字符串中。改用这样的东西怎么样?
public static void main(String[] args) {
String in = "Alpha Beta Gamma 52";
String[] arr = in.split(" "); // split the string by space.
String end = arr[arr.length - 1]; // get the last "word"
boolean isNumber = true;
for (char c : end.trim().toCharArray()) { // check if every character is a digit.
if (!Character.isDigit(c)) {
isNumber = false; // if not, it's not a number.
}
}
Integer value = null; // the numeric value.
if (isNumber) {
value = Integer.valueOf(end.trim());
}
if (value != null) {
in = in.substring(0, in.length()
- (String.valueOf(value).length() + 1)); // get the length of the
// numeric value (as a String).
}
// Display
if (value != null) {
System.out.printf("in = %s, value = %d", in, value);
} else {
System.out.println(in + " does not end in a number");
}
}
关于java - 从一行字符串中删除一个整数。然后,将 int 放入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20592267/