Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用户输入错误表达式和类型的非法开始_Java_User Input - Fatal编程技术网

Java 用户输入错误表达式和类型的非法开始

Java 用户输入错误表达式和类型的非法开始,java,user-input,Java,User Input,我正在编写一个简单的程序,程序要求用户输入一些字符串,并根据用户的输入生成特定的输出。但是当我运行代码时,我得到了一些错误。我也尝试过扫描仪导入,但同样的异常会弹出。当我将导入移到我的main之外时,我又出现了3个不同的错误。此时,我不需要循环该方法或任何东西,只想让程序能够根据用户的输入输出一些输出。谢谢 public class Question { public static void main(String arg[]) { import java.io.Buff

我正在编写一个简单的程序,程序要求用户输入一些字符串,并根据用户的输入生成特定的输出。但是当我运行代码时,我得到了一些错误。我也尝试过扫描仪导入,但同样的异常会弹出。当我将导入移到我的main之外时,我又出现了3个不同的错误。此时,我不需要循环该方法或任何东西,只想让程序能够根据用户的输入输出一些输出。谢谢

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");
        }
    }
}
}

比较是通过
=
实现的,而不是
=
。在Java中,对于字符串,应该使用equals()方法

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

要进行比较,请使用
=
,而不是
=
。这就是任务

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

if (input.equals("you're my daddy.")) {
请在此处阅读相关内容-

编辑:

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");
    }
  }
}
字符串比较的另一个提示: 最好将字符串常量放在比较的第一位,以避免NullPointerException

if ("you're my daddy.".equals(input)) {
  // ...
}
下面简要说明==不正确的原因: 这将检查两个对象是否相同(标识)。每次你写“你是我爸爸”的时候,就会创建一个新字符串。因此,尽管字符串的内容相同,但与==的比较永远不会为真。

在代码中。。 您可以像这样在main之外使用缓冲读取器 私有静态BufferReader br=新BufferReader(新InputStreamReader(System.in))

如果(input=“you's my daddy.”){//使用equals方法。您的代码在这里是错误的

System.out.println("correct");

//此处不关闭花括号

导入语句不能是方法或类的一部分。它们必须在文件开头分开。另外,如果您正确设置代码格式,您将看到大括号混乱:您没有在else语句之前关闭大括号。请将错误输出直接复制并粘贴到任务中ion,这使得一次阅读更容易,其他人也可以根据错误消息找到这个问题。
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