当我运行HelloWorld java代码时,我变得虚假而不是变为真,不知道我哪里做错了?谢谢...
public class HelloWorld{
public static void main(String []args){
boolean b=mixStart("kixten");
System.out.println(b);
}
public static boolean mixStart(String str) {
String a="ix";
if(str.substring(1,3)==a){
System.out.println("true");
return true;
}
else{
System.out.println("false");
return false;
}
}
答案 0 :(得分:0)
您只需更改代码,
if(str.substring(1,3).equals(a)){...}
你做错了是,
您已使用'=='赋值运算符
它不是比较内容(这里,字符串)而不是它,它比较 两个比较字符串之间的内存位置。
很明显是假的,因为它有可能吗?那两个 不同的字符串指的是相同的内存位置。
所以这就是'=='关系运营商所做的一切。
如果你使用'equals(..)'那么它是比较字符串不同 存储器位置(==)。
答案 1 :(得分:0)
你应该使用。
str.substring(1,3).matches(a)
而不是
str.substring(1,3) == a
喜欢这个。
public static void main(String[] args) {
boolean b = mixStart("kixten");
System.out.println(b);
}
public static boolean mixStart(String str) {
String a = "ix";
if (str.substring(1, 3).matches(a)) {
System.out.println("true");
return true;
} else {
System.out.println("false");
return false;
}
}