public class CaesarCipher {
public static void main(String[] args) {
String answer = "";
do {
String Phrase = "";
Scanner scan = new Scanner(System.in);
System.out.println("Type in a phrase");
String phrase = scan.nextLine();
System.out.println("Your Phrase was " + phrase);
for (int i = 0; i < phrase.length(); i++) {
char charAt = phrase.charAt(i);
System.out.println("The " + (i) + " character is " + charAt);
}
System.out.print("Would you like to try again? (Yes/No).");
answer = scan.next();
scan.close();
} while (answer.equals("Yes"));
System.out.println("Thank you, have a nice day.");
}
}
我可以让它通过,甚至在用户响应"否"时正确结束,但每次我说是并重新运行它时。程序在请求另一个输入("输入短语"(后崩溃。它说扫描仪没有任何东西可以扫描,即使它没有给我机会输入任何东西。
你的问题很简单,你不必调用scan.close((。实际上,您可以从 Scanner 类定义中读取:"当扫描仪关闭时,如果源实现了可关闭接口,它将关闭其输入源。">
public class CaesarCipher {
public static void main(String[] args( {
String answer = "";
do {
String Phrase = "";
Scanner scan = new Scanner(System.in);
System.out.println("Type in a phrase");
String phrase = scan.nextLine();
System.out.println("Your Phrase was " + phrase);
for (int i = 0; i < phrase.length(); i++) {
char charAt = phrase.charAt(i);
System.out.println("The " + (i) + " character is " + charAt);
}
System.out.print("Would you like to try again? (Yes/No).");
answer = scan.next();
} while (answer.equals("Yes"));
System.out.println("Thank you, have a nice day.");
}