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

时间:2015-11-07 16:41:08

标签: java string java.util.scanner indexof

我正在做一项任务,我必须在扫描仪上输入一行。

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());

现在,我无法分别找出如何提取整数。我怎么能这样做?

最后,我需要从一行中提取多个字符串和整数。所有字符串 - 整数对都用空格分隔,例如:U8 U7 ...

我无法使用Split()

2 个答案:

答案 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);`