修改代码中错误的语句

*

  • 执行程序,分析并解决问题
  • @author Xiloer
  • /
    public class Test03 {
    public static void main(String[] args) {
    String path1 = "/myweb/reg";//处理注册的路径
    String path2 = "/myweb/login";//处理登录的路径
    /*
     * 程序启动后,输入上述两个地址后检查下面输出. 
     * 分析并解决存在的问题,并写出错误原因:
     * 
     * 
     * 
     */
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入地址:");
    String path = scanner.nextLine();
    if(path!=null) {
       if(path == path1) {
          System.out.println("处理注册!");
       }else if(path == path2) {
          System.out.println("处理登录!");
       }else {
          System.out.println("输入地址有误!");
       }
    
    }
     }
    
    }

这段代码的问题在于字符串比较使用的是 "==" 而不是 .equals()。

因为 "==" 比较的是两个字符串的内存地址,而不是它们的内容,所以得到的结果很可能是错误的。

参考的代码如下

import java.util.Scanner;

public class Test03 {
  public static void main(String[] args) {
    String path1 = "/myweb/reg";//处理注册的路径
    String path2 = "/myweb/login";//处理登录的路径
    
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入地址:");
    String path = scanner.nextLine();
    
    if(path != null) {
      if(path.equals(path1)) {
        System.out.println("处理注册!");
      } else if(path.equals(path2)) {
        System.out.println("处理登录!");
      } else {
        System.out.println("输入地址有误!");
      }
    }
  }
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^