无法从键盘读取字符串(Java)

时间:2015-07-13 10:56:56

标签: java

我是java的新手,我需要一些帮助。我写了这段代码,但它跳到最后,不让我在控制台中写任何东西..

import java.util.Scanner;

public class Exercise21 {
   public static void main(String[] args){

      Scanner keyboardInput = new Scanner("System.in");
      String text = "";
      String text2 = "";

      System.out.println("Type any text : ");
      if(keyboardInput.hasNextLine()) text = keyboardInput.nextLine();

      System.out.println("Type the word you want to find : ");
      if(keyboardInput.hasNextLine()) text2 = keyboardInput.nextLine();

      System.out.println("Your word was found : " + text.indexOf(text2,0));

   }
}

3 个答案:

答案 0 :(得分:1)

它跳到最后的原因是因为在开始时,keyboardInput内没有任何内容,如果检查失败,则会导致以下2。

简单地删除if检查将解决您的问题,然后您可以进行检查以确保输入不是空的。或者,您可以将每个输入包装在while循环中。

do {
    text = keyboardInput.nextLine();
} while (!text.equals(""))

如果值为空字符串,将继续请求输入。

答案 1 :(得分:0)

就像这样,程序将等待下面的3个输入。

Scanner in = new Scanner(System.in);
int n,r,c;
n = in.nextInt();
r = in.nextInt();
c = in.nextInt();

对字符串使用in.nextLine()

答案 2 :(得分:0)

您的扫描仪无法找到方法hasNextLine()的任何行,因为您的文字尚未输入(此方法在从文件中读取文字时非常有用)。

如果您要等待用户输入文字使用 text = keyboardInput.nextLine(); 并删除if语句

ps:正如对方说的那样,你应该Scanner keyboardInput = new Scanner(System.in);没有"