用户输入错误非法启动表达式和类型

时间:2017-10-11 08:11:17

标签: java user-input

我正在编写一个简单的程序,程序要求用户根据用户的输入输入一些字符串和一些输出。但是当我运行代码时,我遇到了一些错误。Errors我也尝试过扫描程序导入,但会弹出相同的异常。当我将导入移动到我的主要之外时,我再次遇到了3个不同的错误。Errors此时我不需要循环或任何方法,只是想拥有它以便程序可以吐出一些输出基于用户的输入。感谢。

public class Question {
    public static void main(String arg[]) {
        import java.io.BufferReader;
        BufferReader br = new BufferReader(new InputStreamReader(System.in));
        String input = br.readLine("who's your daddy?");

        if (input = "you're my daddy.") {
            System.out.println("correct");
        else {
            System.out.println("try again");
        }
    }
}
}

5 个答案:

答案 0 :(得分:1)

编辑:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Question {

  public static void main(String[] args) {

    try {
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      String input = in.readLine();
      if ("you're my daddy.".equals(input)) {
        System.out.println("correct");
      } else {
        System.out.println("try again");
      }
    } catch (IOException ex) {
      System.out.println("Error reading from System.in");
    }
  }
}

String比较的另一个提示: 最好将String常量放在比较的第一位,以避免NullPointerExceptions。

if ("you're my daddy.".equals(input)) {
  // ...
}

这里为什么==的简要说明不正确: 这将检查两个对象是否相同(标识)。每次你写'#34;你都是我的爸爸。"创建一个新的String。因此,尽管String的内容相同,但与==的比较永远不会成立。

答案 1 :(得分:0)

使用==进行比较,而不是=。而且,在Java中,对于Strings,你应该使用那个

的equals()方法
input.equals("you're my daddy.") 

答案 2 :(得分:0)

要进行比较,请使用==,而不是=。那是作业。

但是,input是一个字符串。所以你想使用 -

if (input.equals("you're my daddy.")) {

在此处阅读此内容 - What is the difference between == vs equals() in Java?

答案 3 :(得分:0)

在你的代码中.. 你可以像这样使用main之外的缓冲读卡器 private static BufferReader br = new BufferReader(new InputStreamReader(System.in));

if(输入="你是我的爸爸。"){//使用equals方法。你的代码在这里错了

select TestDate,sum(matcount1) matcount1,sum(matcount2) matcount2
        from 
        (
        SELECT FORMAT(CompletedDate,'MMMM yyyy')  as TestDate,COUNT(_ID) as MATCOUNT1,0 as MATCOUNT2
                   FROM _tableXX
                   where ..........
            group by  FORMAT(CompletedDate,'MMMM yyyy')
        Union    
        SELECT FORMAT(CompletedDate,'MMMM yyyy')  as TestDate,0 as MATCOUNT1,COUNT(_ID) as MATCOUNT2
                   FROM _tableYY
                   where ..........
            group by  FORMAT(CompletedDate,'MMMM yyyy') ) a
 group by TestDate

//不要在这里关闭大括号

答案 4 :(得分:0)

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

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));          
        System.out.print("Enter your input string: ");

        String input = reader.readLine();
        System.out.println("Your input is: " + input);

        String input1="you're my daddy.";
         if (input.equals(input1))

         {

           System.out.println("correct");
         }
        else 
         {

         System.out.println("try again");

         }

       } 
        catch (IOException e)
        {
        e.printStackTrace();
        }

      } 

} enter code here