java类contains问题

本文详细解释了Java中字符串类方法contains的用法及返回值含义,通过实例展示了其在判断字符串是否包含特定子串时的行为。

public class ArrayListtest {
public static void main(String[] args) {

String test = "TEST lesson nine";

boolean result1 = test.contains("TEST");
boolean result2 = test.contains("lesson");
boolean result3 = test.contains("NINE");
boolean result4 = test.contains("oas lesson nine");//不包含则为FALSE

System.out.println("result1:"+result1+"\t"+"result2:"+result2+"\t"+"result3:"+result3+"\t"+"result4:"+result4);

}
}

================result============================

result1:true result2:true result3:false result4:false


=====================why=================================

含有完全的字符串时才返回true。
当且仅当此字符串包含指定的 char 值序列时,返回 true即对于指定的字符串要完全匹配.

Java 中,判断数组是否包含某个元素有多种实现方式: ### 1. 使用循环遍历 通过循环遍历数组中的每个元素,使用条件判断语句来检查是否存在目标元素。以下是一个示例代码: ```java public class ArrayContainsExample { public static boolean contains(int[] array, int target) { for (int element : array) { if (element == target) { return true; } } return false; } public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; int target = 3; boolean containsTarget = contains(numbers, target); if (containsTarget) { System.out.println("数组包含目标元素 " + target); } else { System.out.println("数组不包含目标元素 " + target); } } } ``` 这种方法适用于各种型的数组,且不依赖于 Java 的特定库,但时间复杂度为 $O(n)$,其中 $n$ 是数组的长度 [^1]。 ### 2. 使用 `Arrays.asList()` 和 `contains()` 方法(仅适用于对象数组) 如果是对象数组(如 `String[]`),可以先将数组转换为 `List`,然后使用 `List` 的 `contains()` 方法。示例代码如下: ```java import java.util.Arrays; public class ArrayContainsObjectExample { public static void main(String[] args) { String[] array = {"apple", "banana", "cherry"}; String target = "banana"; boolean containsTarget = Arrays.asList(array).contains(target); if (containsTarget) { System.out.println("数组包含目标元素 " + target); } else { System.out.println("数组不包含目标元素 " + target); } } } ``` 需要注意的是,这种方法不适用于基本数据型的数组,因为 `Arrays.asList()` 对于基本数据型数组会将整个数组作为一个元素处理。 ### 3. 使用 `Arrays.binarySearch()` 方法(仅适用于已排序数组) 如果数组是已排序的,可以使用 `Arrays.binarySearch()` 方法。该方法返回目标元素在数组中的索引,如果未找到则返回一个负数。示例代码如下: ```java import java.util.Arrays; public class BinarySearchExample { public static void main(String[] args) { int[] sortedArray = {1, 2, 3, 4, 5}; int target = 3; int result = Arrays.binarySearch(sortedArray, target); boolean containsTarget = result >= 0; if (containsTarget) { System.out.println("数组包含目标元素 " + target); } else { System.out.println("数组不包含目标元素 " + target); } } } ``` 该方法的时间复杂度为 $O(log n)$,但要求数组必须是已排序的。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值