作为新手使用 Scanner 对象进行拼写检查

Using Scanner object for spell checking as a newbie

Scanner kb = new Scanner(System.in);
String plt;
String msr;
double wgh;

 System.out.println("'Welcome to interplanetary weight calculator.");

 Thread.sleep(2500);


 System.out.println("");
 System.out.println("Please choose one planet for calculation:");
 System.out.println("1.Venus   2.Mars    3.Jupiter");
 System.out.println("4.Saturn  5.Uranus  6.Neptune");
 System.out.print(">");

do { 
 while (!kb.hasNextLine()) {
        System.out.println("That's not a planet!");
        kb.nextLine(); // this is important!
    }
    plt = kb.nextLine();
} while (plt.equalsIgnoreCase("Venus"));
System.out.println("Thank you!Now will do calculation on " + plt); }}

我想做一个行星之间的重量计算器,我也想要一个拼写检查器,但是当我写东西时,它只会打印出 "Thank you! Now, will do the calculation on ...."。

它也打印出整数。我找不到我哪里做错了。

本质上,发生的是你的循环将 运行 一次,你可以输入一些东西然后它会退出循环,因为除了 "venus" 之外的任何东西(大小写的任意组合)将退出循环。这就是为什么它还会打印数字等

解决这个问题的方法可能是添加一个!到条件的开始。这将反转条件,意味着现在只输入 "venus" 将导致循环退出,这将导致程序继续 运行 循环下面的所有内容。但是,仍然不会出现任何类型的错误消息。拼写检查和错误处理将以不同方式实现。