扫描器中的inputmismatch错误NextLong() - java

时间:2013-04-11 23:13:40

标签: java

修改的 正如标题所述,我无法得到任何人的任何意见。它应该回显InputTypeMismatch的错误,或者如果你做数字,那么它会说空引用错误。我正在寻找要输入的单词 - 字符串。

有人可以纠正这个吗?这让我疯了。我不知道在哪里检查。

谢谢你提前:)

    Exception in thread "main" java.util.InputMismatchException
            at java.util.Scanner.throwFor(Unknown Source)
            at java.util.Scanner.next(Unknown Source)
            at java.util.Scanner.nextFloat(Unknown Source)
            at TestFile.promptsentence(TestFile.java:54)
            at TestFile.main(TestFile.java:43)

这是一个例子:

import java.util.*;

public class TestFile{

        public static Scanner inp = new Scanner(System.in);

        public static void main(String[] args){
                long inpu = inp.NextLong();
                // prompts after changing data-type
                String input = Long.valueOf(inp);

                System.out.println(input);

        }


}

3 个答案:

答案 0 :(得分:1)

导致InputMismatchException的问题在于

  long inpu = inp.NextLong(); // Not compilable code line

使用

 Long inpu = inp.nextLong(); // nextLong() and Long

这是完整的工作代码

import java.util.Scanner;

public class TestFile{
    static Scanner inp = new Scanner(System.in);
    public static void main(String[] args){

            //  long inpu = inp.NextLong();
            Long inpu = inp.nextLong();

            //  String input = Long.valueOf(inp);
            String input = String.valueOf(inpu);

            System.out.println(input);
    }
}

修改

  

你能说明如何让我输入nextString()而不是nextLong()吗?

对于此用法,请在main方法中将字符串作为输入。

   String xx = inp.nextLine();
   System.out.println(xx);

您一定要查看以下关于Scanner类及其相关方法的链接。

1. Class Scanner API

答案 1 :(得分:0)

您正试图从Long对象Scanner获取Long.valueOf(inp)值。请改用Long.valueOf(inpu)

无论如何,我建议使用普通变量名。与scanner对象的Scanner类似。

答案 2 :(得分:0)

这里有几个问题。 编辑 - 看起来您的编辑修复了前两个。

public class TestFile(){ <---

应该是

public class TestFile {

其次,

public static main( <-- 

应该是

public static void main

第三

Long.valueOf(inp) <---

应该是

String.valueOf(inpu);

Long.valueOf() - 这个方法产生一个Long对象。如果需要String对象,则应使用String.valueOf(long);