【问题标题】:String.endsWith() not workingString.endsWith() 不工作
【发布时间】:2012-11-13 07:37:15
【问题描述】:

我有以下字符串

http://store.aqa.org.uk/qual/newgcse/pdf/AQA-4695-W-SP.PDF

我想要这样,如果用户忘记输入 http:// 或 .PDF,程序会自动更正它。因此,我尝试了这段代码

if (!str.startsWith("http://")) { // correct forgetting to add 'http://'
        str = "http://" + str;
    }
    System.out.println(str);
    if (!str.endsWith("\\Q.PDF\\E")) {
        str = str + "\\Q.pdf\\E";
    }

但是,即使我输入了正确的字符串,http://store.aqa.org.uk/qual/newgcse/pdf/AQA-4695-W-SP.PDF 输出也是这样。

http://store.aqa.org.uk/qual/newgcse/pdf/AQA-4695-W-SP.PDF\Q.pdf\E

为什么?为什么要添加另一个“.PDF”?

【问题讨论】:

  • 不清楚为什么您认为endsWith 不起作用。在这种情况下,您为什么期望它返回 true

标签: java string ends-with


【解决方案1】:

因为http://store.aqa.org.uk/qual/newgcse/pdf/AQA-4695-W-SP.PDF 末尾没有\Q.PDF\E。在字符串文字中,\\ 给你一个反斜杠。所以"\\Q.PDF\\E"\Q.PDF\E——一个反斜杠,后跟一个Q,然后是一个点,然后是PDF,然后是另一个反斜杠,然后是E

如果要查看字符串是否以.PDF 结尾,只需使用

if (!str.endsWith(".PDF"))

当然,这是区分大小写的。如果您希望它不区分大小写,可能:

if (!str.toLowerCase().endsWith(".pdf"))

【讨论】:

  • 但它有我正在测试的 .PDF 文件?
  • @NightStrider:不,你不是在测试“.PDF”——你是在测试反斜杠 Q dot PDF 反斜杠 E。代码的行为完全符合我的预期——什么不是不清楚这就是为什么您希望它以其他方式表现。
  • 很高兴将我想要的东西包装在 \\Q &\\E
【解决方案2】:

喂。我想这就是你想要的:

    String str = "http://store.aqa.org.uk/qual/newgcse/pdf/AQA-4695-W-SP";
    //String str = "http://store.aqa.org.uk/qual/newgcse/pdf/AQA-4695-W-SP.PDF";
    if (!str.startsWith("http://")) { // correct forgetting to add 'http://'
        str = "http://" + str;
    }
    System.out.println(str);
    if (!str.endsWith(".PDF")) {
        str = str + ".PDF";
    }
    System.out.println(str);
}

【讨论】:

    【解决方案3】:

    - 只是因为您的字符串 http://store.aqa.org.uk/qual/newgcse/pdf/AQA-4695-W-SP.PDF doesNot\Q.PDF\E

    结尾

    -如果您担心匹配 .PDF,请执行此操作...

    if (s.endsWith(".PDF")){
    
      // add it at the end....
    
    }
    

    -这里使用StringBuilder 代替String 会更合适,String可变的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 2021-07-04
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      相关资源
      最近更新 更多