当前位置: 首页 > 面试题库 >

哪一个String方法:“包含”或“ indexOf> -1”?

阮健
2023-03-14
问题内容

以下哪种方法是确定子字符串包含的有效方法?

if (str.indexOf("/") > -1)

要么

if (str.contains("/"))

问题答案:

看一下java.lang.String源代码。该contains方法是通过调用来实现的indexOf,因此它们本质上是相同的。

public boolean contains(CharSequence s) {
    return indexOf(s.toString()) > -1;
}

您应使用任何使代码更具可读性的方法。如果要检查字符串是否包含特定的子字符串,请使用contains。如果要查找子字符串的起始索引,请使用indexOf

编辑:

有两个答案提到,由于要进行额外的方法调用,因此效率较低,因此indexOf应优先考虑。 错了
在这种情况下,由额外的方法调用引起的开销是微不足道的。在实现的上下文中,使用最有意义的方法。这将使您的代码更具可读性。contains``contains



 类似资料:
  • 问题内容: 我有一个问题,但我无法解决。 我得到的输出是$ FB和$ F,但是此虚拟字符串仅包含列表中的一个字符串..是否还有其他方法可以完全匹配? 问题答案: 您似乎想查看是否包含一个 单词 。你可以这样做:

  • 描述 (Description) 此方法返回指定子字符串第一次出现的此字符串中的索引。 如果它不作为子字符串出现,则返回-1。 语法 (Syntax) 以下是此方法的语法 - int indexOf(String str) 参数 (Parameters) 这是参数的细节 - str - 一个字符串。 返回值 (Return Value) See the description. 例子 (Exam

  • 问题内容: 哪个类首先编译,或者? 需要相同的类作为返回类型并扩展该类。 问题答案: 有很多方法可以实现编译器。但是,基本方法是解析源并构建符号表。然后使用该符号表将源代码转换为目标代码。 单遍编译器只能使用它已经遇到的符号。是旨在使用单遍编译器的语言示例。如果不是不可能的话,使用单遍编译器将很难实现。 但是,大多数语言都使用编译器,因为单遍编译器的优点不再重要,在这种情况下,使用尚未定义的符号变

  • 但应返回false 还有:我的代码高效吗?我觉得这是一个更容易的方法。如有任何帮助,不胜感激

  • 我需要在Eclipse中安装什么包来解析org/Eclipse/ocl/helper/OCLSyntaxHelper?我在Eclipse repo中找不到OCLSyntaxHelper类。 线程“main”java中出现异常。lang.NoClassDefFoundError:org/eclipse/ocl/helper/OCLSyntaxHelper位于org。日食ocl。ecore。OCL。n

  • 问题内容: 我正在研究Bill Burke编写的带有JAX-RS的Restful Java中的示例。我正在使用intellij并创建了一个Maven项目来制作“ Hello World” Web服务。我了解JAX-RS是规范,而不是实现。我想尝试Apache CXF实现。 我如何找出哪个jar或哪个Maven工件包含以下必需的类: 问题答案: 尝试在Central上搜索课程。看起来就是您要找的东西