Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,如何从字符串中分别提取字符串和整数?_Java_String_Java.util.scanner_Indexof - Fatal编程技术网

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

在Java中,如何从字符串中分别提取字符串和整数?,java,string,java.util.scanner,indexof,Java,String,Java.util.scanner,Indexof,我正在做一项作业,我必须在扫描仪上键入行 以U8为例U和8都有意义,因此,我必须将它们分开 以下是迄今为止我对U部分的了解: userInput = userInput + " "; index = userInput.indexOf(" "); strA = userInput.substring(0, index); userInput = userInput.substring(index+1, userInput.length()

我正在做一项作业,我必须在扫描仪上键入行

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…


根据Paul的回答,我不能使用
Split()

,要使其能够用于任何数量的字符int输入,这些字符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));
    }

很抱歉删除了代码中的提示,但我必须快速复制/粘贴,因为我很快就要离开了,但我希望这能有所帮助

根据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));
    }

很抱歉删除了代码中的提示,但我必须快速复制/粘贴,因为我很快就要离开了,但我希望这能有所帮助

如果字母是字符串的第一个字符,数字是第二部分,那么可以使用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);`

如果字母是字符串的第一个字符,数字是第二部分,那么可以使用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);`

嘿,谢谢!我已经拥有的代码是否值得这么做?在某种程度上,我需要在一行上有多个字符串/int。全部用空格U8 U7等隔开?@Jon Roy如果这对你有帮助,请+1这段代码,而且我已经添加了一个答案,这个答案在这段代码的基础上继续,你想用空格做什么就做什么谢谢!我已经拥有的代码是否值得这么做?在某种程度上,我需要在一行上有多个字符串/int。都用空格U8 U7等隔开?@Jon Roy如果这段代码对你有帮助的话,请+1这段代码,我还添加了一个答案,这个答案延续了这段代码,你想用空格做什么就做什么。我的教授说,这“太简单”不会教我们编程。有没有办法让我得到它,如果有一个10而不是1,它会认出它是10而不是1?好吧,那太傻了,我从来没有听过教授这么说,为了回答你的问题,你想要U10而不是U1吗?你是希望有多个字母,还是仅仅numbers@JonRoy我已经编辑了处理多个数字的代码谢谢!非常地我将保存这段代码,这样我就可以重新阅读它,并围绕它编写一些程序,这样我就不会忘记它。Thanks@JonRoy这就是堆栈溢出的意义所在,快乐编程!我的教授说它“太简单”不会教我们编程。有没有办法让我得到它,如果有一个10而不是1,它会认出它是10而不是1?好吧,那太傻了,我从来没有听过教授这么说,为了回答你的问题,你想要U10而不是U1吗?你是希望有多个字母,还是仅仅numbers@JonRoy我已经编辑了处理多个数字的代码谢谢!非常地我将保存这段代码,这样我就可以重新阅读它,并围绕它编写一些程序,这样我就不会忘记它。Thanks@JonRoy这就是堆栈溢出的意义所在,快乐编程!我修改了你的问题,并试图改进你的解释,以使你的问题更容易理解。我还包括了你评论中的信息。下次,请使用问题下方的编辑按钮直接向问题添加其他信息。请尽可能准确地描述您的问题。这有助于读者更好地理解您的问题。例如,最好知道为什么不能使用
Split()
@honk Sorry mate!这个网站不太好。我会尽量记住这一点。谢谢,我修改了你的问题,并试图改进你的解释,以使你的问题更容易理解。我还包括了你评论中的信息。下次,请使用问题下方的编辑按钮直接向问题添加其他信息。请尽可能准确地描述您的问题。这有助于读者更好地理解您的问题。例如,最好知道为什么不能使用
Split()
@honk Sorry mate!这个网站不太好。我会尽量记住这一点。谢谢你,伙计