如何从 Java 中的字符串中分别提取字符串和整数?

How to extract strings and integers separately from a string in Java?

我正在做作业,我必须在扫描仪上输入行。

U8为例。 U8 都有意义,因此,我必须将它们分开。

这是我目前在 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);`