java - 字符串是第二个的子串?

标签 java string class substring

<分区>

Possible Duplicate:
How do I compare strings in Java?

我可能在某个地方犯了逻辑错误,但我不知道在哪里。 即使条件似乎为 TRUE,输出始终为 FALSE

public class Test {
  public static void main(String[] args) {

    String str1 ="Hello world";
    String str2 ="Hello world";

    if (checkSubstring(str1,str2)){
         System.out.println("Cool");
    }
    else 
         System.out.println("Not cool");
 }

 static boolean checkSubstring(String str1, String str2) {

    String s1 = str1;
    String s2 = str2;
    if (s1.substring(4)== s2.substring(4)){
      return true;  
    }
    else
    return false;
 }
}

最佳答案

您应该始终使用equals 方法来测试string 的内容。

== 运算符检查两个 reference 是否指向相同的对象或不同的对象。因为 s1.substring()s2.substring() 会生成两个不同的字符串对象,所以比较它们的 reference 会给你 false boolean 值。

因此,在 checkSubstring 方法中,您应该像这样比较您的子字符串:-

if (s1.substring(4).equals(s2.substring(4))) {
    return true;
} else {
    return false;
}

关于java - 字符串是第二个的子串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13331955/

相关文章:

java - org.apache.jasper.JasperException : Unable to compile class for JSP , 服务器遇到内部错误 ()

java - 面板不想滚动

string - java 8 String.chars() 是否可以正确处理 8 字节字符?

c - 在 MacOS 中将字符串返回给 VBA

C# 获取用换行符替换 NULL 的字符串

jQuery:动态添加属于另一个元素的类

java - 给定掩码大小,有效地创建具有低位集的掩码

java - 如何更改枚举的 IntelliJ 重新格式化代码样式?

php - 另一个继承问题

python - 访问元组中值的有效方法(python)