1

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

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

谢谢是提前:)

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

        }


}
4

3 回答 3

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.类扫描器API

于 2013-04-11T23:22:02.237 回答
0

您正在尝试从object获取Long价值。改为使用。ScannerLong.valueOf(inp)Long.valueOf(inpu)

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

于 2013-04-11T23:17:44.317 回答
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);

于 2013-04-11T23:19:03.800 回答