我只是在编写一个小程序,它接收来自用户的输入然后将其打印回来。然而,当我运行程序时,它要求输入两次(它打印初始语句,然后一旦你输入并按回车键,没有任何反应,但如果你再次这样做它工作和打印。)最高值显然没有重量或意思是,因为它没有显示出来,但第二个值确实打印得很好。
package kek;
import java.util.Scanner;
public class Kek {
public static void main (String[] args){
Scanner input = new Scanner(System.in);
System.out.println("What is kek? (Top, bottom, etc.)");
String s1 = input.next();
if (input.hasNext("kek")) {
System.out.println("No.");
System.exit(0);
} else {
System.out.println(s1 + "kek");
input.close();
}
}
}
这是控制台:
What is kek? (Top, bottom, etc.)
top
top
topkek
和
What is kek? (Top, bottom, etc.)
kek
kek
No.
我正在使用eclipse kepler。
答案 0 :(得分:1)
不确定但这是你的意思吗?
public static void main(String[] args) {
System.out.println("What is kek? (Top, bottom, etc.)");
Scanner input = new Scanner(System.in);
String string = input.nextLine();
if(string.equals("kek")){
System.out.println("No.");
System.exit(0);
}else{
System.out.println(string + "kek");
input.close();
}
}
如果没有,那么您需要更具体地了解您要实现的目标。从你现在所写的内容来看,你真正想要的是什么
答案 1 :(得分:1)
您要求next()
和hasNext()
两次输入。请改为:
package kek;
import java.util.Scanner;
public class Kek {
public static void main (String[] args){
Scanner input = new Scanner(System.in);
System.out.println("What is kek? (Top, bottom, etc.)");
String s1 = input.next();
//just compare strings using the .equals() method instead
//of using the hasNext() which will ask for another input
if ("kek".equals(s1)) {
System.out.println("No.");
System.exit(0);
}
else{
System.out.println(s1 + "kek");
input.close();
}
}
}
答案 2 :(得分:0)
删除代码中的input.next();
并使用。 input.next();
获取输入,has.next()
获取其他输入
答案 3 :(得分:0)
您首先在s1
中读取一个值,然后告诉Scanner
在其中某处找到值为"kek"
的另一个行。也许你的意思是说if(input.equals("kek"))
?
答案 4 :(得分:0)
我遇到了完全相同的问题,但是当我输入' no'或者'不是......我不确定为什么只有' no'区域受到影响。
import java.util.Scanner;
public class Methods2 {
static Scanner userInput = new Scanner(System.in);
static String answer;
static int yes1no2;
static int loopStage = 1;
public static void main(String[] args)
{
System.out.println("Welcome to the bank.\nWould you like to open an account?");
while (loopStage == 1)
{
if (yesOrNo() == 1)
{
loopStage = 2;
System.out.println("Great.");
}
else if (yesOrNo() == 2)
{
System.out.println("Ok, please come again.");
}
}
}
public static int yesOrNo()
{
answer = userInput.nextLine();
if (answer.equalsIgnoreCase("yes"))
{
yes1no2 = 1;
}
else if (answer.equalsIgnoreCase("no"))
{
yes1no2 = 2;
}
else
{
yes1no2 = 3;
System.out.println("Please say 'Yes' or 'No'.");
}
return yes1no2;
}
}