【问题标题】:String1.equalsIgnoreCase(String2) returns false even though both have same valueString1.equalsIgnoreCase(String2) 返回 false,即使两者具有相同的值
【发布时间】:2013-02-22 21:38:57
【问题描述】:

在我的应用程序中,我正在读取 HTTP 页面并通过以下方法将 Stream 转换为字符串。

public static String convertStreamToString(java.io.InputStream is)
{
    java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A"); 
    return s.hasNext() ? s.next() : "";
}

但是,一旦我有了字符串,我将与另一个具有完全相同组件的字符串(在 eclipse 中手动创建)进行比较(这是从我的服务器上的同一 HTML 文件复制粘贴)。比较结果是假的。

我正在使用 s1.equalsIgnoreCase(s2)。下面是我的 2 个字符串完全相同的图像。

【问题讨论】:

  • 尝试先在字符串上调用 .trim()。
  • @RaghavSood。成功。对从 Stream 生成的字符串调用 trim 解决了该问题。非常感谢。

标签: android string stream equals


【解决方案1】:

您的某个字符串很可能有一些空格,导致它们在比较时不相等。

在比较它们之前在字符串上调用 .trim() 应该可以解决此问题。

【讨论】:

  • Raghav,如果您认为这个问题可能对其他人有帮助,为什么不投票呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
相关资源
最近更新 更多