有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

字符串在Java中找不到符号错误消息

嗨,我得到了错误信息:

cannot find symbol - variable Andrew for this method.

我需要改变什么

/**
* Create a method that says hi if the name is the same as yours and go away otherwise.
* 
* @author (your name) 
* @version (a version number or a date)
*/
public class String
{
public void greeting(String name) {
    String myName;
    myName = Andrew;
    if (name == myName) {
        System.out.println("Hi");
    }
        else {
            System.out.println("Go away");
        }

    }

}

共 (5) 个答案

  1. # 1 楼答案

    试着这样做:

    public class String
    {
    public void greeting(String name) {
        String myName;
        myName = "Andrew";
        if (name.equals(myName)) {
            System.out.println("Hi");
        }
            else {
                System.out.println("Go away");
            }
    
        }
    
    }
    
  2. # 2 楼答案

    使用equals()来比较字符串,==将比较引用,并且没有Andrew的声明

  3. # 3 楼答案

    String myName;
    myName = Andrew;
    

    什么是Andrey?根据Java语法,编译器期望它是一个变量,但实际上并没有这样的变量。我想你想写点什么

    String myName;
    myName = "Andrew";//this is correct initialization
    
  4. # 4 楼答案

    myName = Andrew;
    

    您正在使用尚未声明的Andrew,因此无法使用它

    要使用它,您必须首先声明(也要正确初始化,以便在运行时看到正确的结果)

    String Andrew;
    

    在你使用它之前就这样

    另一个问题是类名String。在方法public void greeting(String name)中,您指的是您自己的类还是java.lang.String

  5. # 5 楼答案

    String myName = "Andrew";
    if (name.equals(myName)) {
        System.out.println("Hi");
    }
    

    最好以另一种方式进行比较,例如myName.equals(name)代替name.equals(myName),因为myName肯定不是空的,而name可以是null,这将导致NullPointerException