如何使我的函数 url 包含高效?

How can I make my function url contains efficient?

我正在使用 android webview 检查页面的 URL。目前我的代码是这样的

if (nurl.contains(".pdf"))
{
//doing stuff
}
else if(nurl.contains(".PDF"))
{
//doing stuff
}

我怎样才能让它更有效率。我尝试使用 OR 运算符 (||),但它在 Android Studio、Java.

中不受支持

您可以将文件名转换为大写,然后只进行一次 contains 调用。

if (nurl.toUpperCase().contains(".PDF")) {
    //doing stuff
}

解决方法Mike M. and Stephan Branczyk

这很有魅力!

if (nurl.contains(".pdf") || nurl.contains(".PDF"))

When I type ||, its giving me error. Operator || can not be applied to 'java.lang.String', 'java.lang.String'

我猜你是这样写的:

  if (nurl.contains(".pdf" || ".PDF")) {
      //doing stuff
  }

这在 Java 中不起作用。编译器是正确的。你不能 "OR" 两个字符串在一起;请参阅此 Oracle tutorial条件运算符 部分)以了解 || 运算符的作用及其操作数必须是什么。

这就是编译器消息所说的:"you can't OR" 两个字符串在一起。

但这才是真正的问题……您不应该 "OR"-ing 字符串。您实际上应该 "OR"-ing contains 调用的结果。

Java 不像英语。在英文中 "does A contain B or C" 表示 "does A contain B or does A contain C"。在 Java(以及 AFAIK 所有其他语言)中,您需要自己进行重新排列......用这样的话语。

  if (nurl.contains(".pdf") || nurl.contains(".PDF")) {
      //doing stuff
  }

话虽如此,你的测试还是有问题的。您不应该测试 ".pdf"".PDF" 结尾的 URL 吗?

  if (nurl.endsWith(".pdf") || nurl.endsWith(".PDF")) {
      //doing stuff
  }