给定两个字符串“相等”的概念: 字符串A:“123_456_abc” 字符串B:“456_abc_123” 字符串C:“123_4_56_abc” 虽然字符串A和字符串B并不相同,但是两者经过“_”分隔后的部分,忽略顺序的话,是一模一样的,这样我们定义字符串A=字符串B 按照这个定义,字符串A和C不等,B和C不等 现在给出1000个这样的字符串集合,请给出按上述定义的相等概念进行去重后的字符串集合
package com.csdn;
import java.util.Arrays;
/**
*
* @作者:Roc-xb
* @联系QQ:327844761
* @微信公众号:ewbang
* @若有帮助望采纳,谢谢!
*/
public class Demo {
public static void main(String[] args) {
String a = "123_456_abc";
String b = "456_abc_123";
String c = "123_4_56_abc";
boolean ab = func(a, b);
boolean ac = func(a, c);
boolean bc = func(b, c);
System.out.println(ab);
System.out.println(ac);
System.out.println(bc);
}
public static boolean func(String s1, String s2) {
String[] split_s1 = s1.split("_");
Arrays.sort(split_s1);
String[] split_s2 = s2.split("_");
Arrays.sort(split_s2);
return Arrays.equals(split_s1, split_s2);
}
}
先把字符串拆开,然后排序再组装,再整个集合排下序,再用双指针的方法去重