【问题标题】:If Else Statement Not Returning Right Value [duplicate]If Else 语句不返回正确的值[重复]
【发布时间】:2018-09-21 11:00:59
【问题描述】:

我正在尝试通过索引值检查播放列表是简单的还是掌握的。我的问题是,当我输入(True)URL 时,它仍然返回错误声明“这是一个简单的播放列表”。

关于如何解决此问题的任何提示?

String output = getPlaylistUrl(input);
String mediaRecord = output.substring(399);
String lastRecord = "gear4/prog_index.m3u8";
if (mediaRecord == lastRecord) {
    System.out.println("This is a master playlist");
} else {
    System.out.println("This is a simple playlist");
}

【问题讨论】:

  • mediaRecord 可能确实不是"gear4/prog_index.m3u8" - 实际上substring(399) 似乎困难
  • 请不要编辑您的问题以更正其中的错误。我把它回滚了。
  • 很抱歉,当我觉得这是一个重复的问题时,我一直收到通知。

标签: java parsing indexing substring


【解决方案1】:

在 Java 中,不能使用 == 比较字符串是否相等,因为 == 比较的是两个实例,而不是内容。所以除非 s1 和 s2 实际上是同一个实例,否则s1 == s2 永远不会返回true

您需要使用equals(...) 来比较两个字符串是否相等。

if (mediaRecord.equals(lastRecord) { ... }

【讨论】:

  • 一个完全正确的答案怎么会被否决?
  • '使用 == 的字符串比较总是失败' 好吧,那是不必要的广泛......
  • @daniu 你什么意思?在 Java 中不能使用 == 比较两个字符串的相等性。
  • if ("a" == "a") System.out.println("true") 为我打印true,因此比较不会总是失败。 String a = "a"; System.out.println(a == "a") 也一样,但这正在变成危险的地形。
  • @daniu 加油...这可能不完全准确,但不值得投反对票...
【解决方案2】:

为了比较字符串,您需要使用 .equals 而不是 ==。使用 == 比较引用而不是值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-21
    • 2020-12-08
    相关资源
    最近更新 更多