java去除重复的字符串和移除不想要的字符串

时间:2022-09-17 09:20:25

在java开发中碰到了有些字符串是重复的,如果在进行业务处理要全部遍历太对的数据就会重复,所以在进行业务处理前进行一个去重操作。

java去除重复的字符串和移除不想要的字符串

这里由于业务需要所以先将字符串转化为string数组,使用split分割,然后将string数组一个个放到list里(list的remove可以将你不要的字符串删除掉,代参数的哦)

可以看到我使用的是list,在list里包含了一个contains函数,表示当前字符串是否与list里的元素有相同没有就add进list里

在最后还将list里的元素转化为string数组就将重复的字符串去除了,在最后使用了substring将字符串截取,在这里如果你的otherAppid太长的话会造成内存溢出,因为substring

的实现是先将字符串拷贝到另一块内存,然后将字符串截取(这也是我看了支付宝的支付dom有个疑问然后查找资料得到的有兴趣的可以找下资料看下java去除重复的字符串和移除不想要的字符串)所以可以使用

int i=0;

if (i == newStr.length-1) {//拼接时,不包括最后一个,字符
otherAppid=otherAppid+commercial_account;
} else {
      otherAppid=otherAppid+commercial_account+",";
 }
i++;

判断下。

贴出代码

String otherAppid="";
String tmp="123,234,123,234,567,789,adb,asc,dcf,adb";
String[] commercial_accounts=tmp.split(",");

List<String> list = new ArrayList<String>();  
for (int i=0; i<commercial_accounts.length; i++) {  
System.out.print("commercial_accounts:"+commercial_accounts[i]);
System.out.print("\n");
if(!list.contains(commercial_accounts[i])){
       //去除重复的字符串
        list.add(commercial_accounts[i]);
 } 
}  
//list.remove(1);  去除不想要的字符串
String[] newStr =  list.toArray(new String[0]); //返回一个数组

int i = 0;
for(String commercial_account:newStr){
//otherAppid=otherAppid+commercial_account+",";

if (i == newStr.length-1) {//拼接时,不包括最后一个,字符
otherAppid=otherAppid+commercial_account;
  } else {
      otherAppid=otherAppid+commercial_account+",";
}
i++;
}
System.out.print("otherAppid:"+otherAppid);
System.out.print("\n");
//otherAppid=otherAppid.substring(0,otherAppid.length()-1);
System.out.print("otherAppid:"+otherAppid);