如何从 Java 中的字符串中分别提取字符串和整数?
How to extract strings and integers separately from a string in Java?
我正在做作业,我必须在扫描仪上输入行。
以U8
为例。 U
和 8
都有意义,因此,我必须将它们分开。
这是我目前在 U
部分的内容:
userInput = userInput + " ";
index = userInput.indexOf(" ");
strA = userInput.substring(0, index);
userInput = userInput.substring(index+1, userInput.length());
index = userInput.indexOf(" ");
userInput = userInput.substring(index+1, userInput.length());
现在,我就是找不到如何单独提取整数。我该怎么做?
最后,我需要从一行中提取多个字符串和整数。所有字符串-整数对都由 space 分隔,例如:U8 U7 ...
.
我无法使用Split()
。
脱离 Paul 的回答,为了使其能够适用于由 space 分隔的任意数量的 char int 输入,您可以使用:
String input = "U80 G9 Q4";
ArrayList<Integer> ints = new ArrayList<Integer>();
ArrayList<Character> chars = new ArrayList<Character>();
for (int i = 0; i < input.length() - 1; i++) {
char letter = input.charAt(i);
String num = "";
for(int j=i+1;j<input.length();j++){
i++;
if(input.charAt(j)!=' '){
num+=input.charAt(j);
}else{
break;
}
}
int number = Integer.parseInt(num + "");
ints.add(number);
chars.add(letter);
}
for (int i = 0; i < ints.size(); i++) {
System.out.println("Letter: " + chars.get(i) + " Number: " + ints.get(i));
}
输出:
Letter: U Number: 80
Letter: G Number: 9
Letter: Q Number: 4
很抱歉删除了代码中的提示,但我不得不快速 copy/paste 因为我很快就要离开了,但我希望这对您有所帮助!
如果字母是字符串的第一个字符,数字是第二部分,您可以使用 charAt 方法。
示例:
String input="U8";
char letter=input.charAt(0);
char number=input.charAt(1);
//convert char to int
int integer=Integer.parseInt(""+number);
System.out.println("Letter: "+letter+" Number: "+integer);`
我正在做作业,我必须在扫描仪上输入行。
以U8
为例。 U
和 8
都有意义,因此,我必须将它们分开。
这是我目前在 U
部分的内容:
userInput = userInput + " ";
index = userInput.indexOf(" ");
strA = userInput.substring(0, index);
userInput = userInput.substring(index+1, userInput.length());
index = userInput.indexOf(" ");
userInput = userInput.substring(index+1, userInput.length());
现在,我就是找不到如何单独提取整数。我该怎么做?
最后,我需要从一行中提取多个字符串和整数。所有字符串-整数对都由 space 分隔,例如:U8 U7 ...
.
我无法使用Split()
。
脱离 Paul 的回答,为了使其能够适用于由 space 分隔的任意数量的 char int 输入,您可以使用:
String input = "U80 G9 Q4";
ArrayList<Integer> ints = new ArrayList<Integer>();
ArrayList<Character> chars = new ArrayList<Character>();
for (int i = 0; i < input.length() - 1; i++) {
char letter = input.charAt(i);
String num = "";
for(int j=i+1;j<input.length();j++){
i++;
if(input.charAt(j)!=' '){
num+=input.charAt(j);
}else{
break;
}
}
int number = Integer.parseInt(num + "");
ints.add(number);
chars.add(letter);
}
for (int i = 0; i < ints.size(); i++) {
System.out.println("Letter: " + chars.get(i) + " Number: " + ints.get(i));
}
输出:
Letter: U Number: 80
Letter: G Number: 9
Letter: Q Number: 4
很抱歉删除了代码中的提示,但我不得不快速 copy/paste 因为我很快就要离开了,但我希望这对您有所帮助!
如果字母是字符串的第一个字符,数字是第二部分,您可以使用 charAt 方法。
示例:
String input="U8";
char letter=input.charAt(0);
char number=input.charAt(1);
//convert char to int
int integer=Integer.parseInt(""+number);
System.out.println("Letter: "+letter+" Number: "+integer);`