编写自定义的字符串一致性匹配方法,只要两个字符串包含同样的字符,不管字符的顺序如何,都认为两个字符串一致,如:”aabbcc”和”abcabc”被认为是一致的
import java.util.Arrays;
import java.util.Scanner;
/*
* @author: wyh
* @classname: Test03
* @description:3. 编写自定义的字符串一致性匹配方法,只要两个字符串包含同样的字符,不管字符的顺序如何,都认为两个字符串一致,
* 如:”aabbcc”和”abcabc”被认为是一致的
* @date: 2022/7/1 20:42
* @version: 0.1
* @since: jdk11
*/
public class Test03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个字符串:");
String str1 = sc.next();
System.out.println("请输入第二个字符串:");
String str2 = sc.next();
char[] chars1 = str1.toCharArray();
char[] chars2 = str2.toCharArray();
//方法①,循环
if (chars1.length != chars2.length) {
System.out.println("不等");
} else {
int count1 = 0;
int count2 = 0;
for (char c : chars1) {
for (char value : chars2) {
if (c == value) {
count1++;
break;
}
}
}
for (char c : chars2) {
for (char value : chars1) {
if (c == value) {
count2++;
break;
}
}
}
if (count1 == chars1.length && count2 == chars1.length)
System.out.println("相等");
else
System.out.println("不等");
}
//方法② 数组排序
Arrays.sort(chars1);
Arrays.sort(chars2);
boolean is = Arrays.equals(chars1, chars2);
if (is)
System.out.println("相等");
else
System.out.println("不等");
//方法③,字符替换
for (int i = 0; i < str1.length(); i++){
char c = str1.charAt(i);
str2 = str2.replaceFirst(String.valueOf(c),"");
}
if (str2.length() == 0)
System.out.println("相等");
else
System.out.println("不等");
}
}
结果: