*
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("输入地址有误!");
}
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: