java 判断两个字符串互相包含方法
时间: 2023-10-10 21:14:58 浏览: 130
Java 中判断两个字符串互相包含可以使用多种方法。这里我介绍两种:
1. 使用哈希表(HashMap):
可以将一个字符串中的每个字符作为键,出现的次数作为值,放入一个 HashMap 中。然后遍历另一个字符串,如果其中的字符在 HashMap 中出现过,则将对应的值减一。如果最后 HashMap 中所有的值都为0,则说明两个字符串互相包含。下面是示例代码:
```java
public static boolean isContain(String str1, String str2) {
if (str1.length() != str2.length()) {
return false;
}
Map<Character, Integer> map = new HashMap<>();
for (char c : str1.toCharArray()) {
map.put(c, map.getOrDefault(c, 0) + 1);
}
for (char c : str2.toCharArray()) {
int count = map.getOrDefault(c, 0);
if (count == 0) {
return false;
}
map.put(c, count - 1);
}
return true;
}
```
2. 使用排序:
可以将两个字符串都转换为字符数组并排序,然后比较排序后的结果是否相等。如果相等,则说明两个字符串互相包含。下面是示例代码:
```java
public static boolean isContain(String str1, String str2) {
if (str1.length() != str2.length()) {
return false;
}
char[] arr1 = str1.toCharArray();
char[] arr2 = str2.toCharArray();
Arrays.sort(arr1);
Arrays.sort(arr2);
return Arrays.equals(arr1, arr2);
}
```
以上两种方法都可以判断两个字符串是否互相包含,具体使用哪种方法可以根据实际情况选择。
阅读全文