我正在做一项任务,我必须在扫描仪上输入一行。
以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());
现在,我无法分别找出如何提取整数。我怎么能这样做?
最后,我需要从一行中提取多个字符串和整数。所有字符串 - 整数对都用空格分隔,例如:U8 U7 ...
。
我无法使用Split()
。
答案 0 :(得分:0)
取消Paul的回答,为了使其能够用于空格分隔的任意数量的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
很抱歉删除了代码中的提示,但我不得不快速复制/粘贴,因为我必须尽快离开,但我希望这有帮助!
答案 1 :(得分:0)
如果字母是String中的第一个字符,第二个部分是数字,则可以使用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);`