求一方法:通过对一个字符串处理,使字符串里面不再含有重复的字段... 搂主要问什么?是这个方法如何实现,还是帮你看看你的方法是否正确,或者ubound()???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String get_file_keywordsByonly="批复 意见 同意 批复 通知 批示 通知 批复"; String[] arr=get_file_keywordsByonly.split(" +"); Set set=new HashSet(Arrays.asList(arr)); arr=(String[])set.toArray(new String[0]); StringBuffer sb=new StringBuffer(); for(int i=0;i<arr.length;i++) { sb.append(arr[i]); sb.append(' '); } sb.setLength(sb.length()-1); get_file_keywordsByonly=sb.toString(); System.out.println(get_file_keywordsByonly); Set set=new HashSet(Arrays.asList(arr)); 其中Set 方法在哪个包中 要(引用)import ...还有HashSet 和Arrays 谢谢了!... 谢谢楼上的 啊 我的方法效率是不是很低啊? Pattern p = Pattern.compile("[ ]+"); String[] idn=p.split(get_file_keywordsByonly); //把字符串分割为一个数组for(int m=0;m<idn.length;m++) //从第一个字符开始 { for (int j = m + 1; m < idn.length; j++) //每到一个字符,和后面的字符比较 if ( (idn[m].length() > 0) && (idn[m].equals(idn[j]))) //如果有重复 idn[j] = ""; //把后面重复的清空 }//此时,IDN里没有重复的字符了for(int m=0;m<idn.length;m++) //从第一个字符开始 if(idn[m]!="") //如果这个字符不是空 get_file_keywords=get_file_keywords+idn[m]+" "; //就把他接到char这个字符的内容之后 //比如,原来char=1,2, 现在找到了3,就把3接到1,2,后,变成1,2,3, //get_file_keywords=left(get_file_keywords,len(get_file_keywords)-1); //由于上面程序的原因,char字符最后多出来一个空格,用这个LEFT取CHAR长度-1个字符 archivesForm.setGet_file_keywords(get_file_keywords); to:jFresH_MaN()"\\r\\n"(做人挺厚道的说) 我发了两个帖子 你觉得哪个方法更好啊?谢谢 难道我的方法不够好吗?简洁,其实效率也不错HashSet来过滤相同的数据比你自己实现的效率要高,因为你一个个判断,时间复杂度可能是 O(n^2).而HashSet根本不用判断,时间复杂度是O(n)既简洁又高效的程序不用,真是想不通 整型常量与字符串常量相加问题 struts2做报表的时候的错误 我想替换字符串String a = "1234"6789"中间的"字符 关于static加载的问题 JAR Classpath 如何设置? 数据显示 在java应用程序中,如果在屏幕任意处显示有颜色的点? 急,帮忙看看 单击按钮弹出下拉菜单,为什么鼠标移动到菜单上时,不高亮显示?(swing)急!绝对给分 文件列表的困惑,请各位高手讨论讨论!! 请教一个简单的问题 请教高手指点类的问题 谢谢!!!
String[] arr=get_file_keywordsByonly.split(" +");
Set set=new HashSet(Arrays.asList(arr));
arr=(String[])set.toArray(new String[0]);
StringBuffer sb=new StringBuffer();
for(int i=0;i<arr.length;i++)
{
sb.append(arr[i]);
sb.append(' ');
}
sb.setLength(sb.length()-1);
get_file_keywordsByonly=sb.toString();
System.out.println(get_file_keywordsByonly);
Pattern p = Pattern.compile("[ ]+");
String[] idn=p.split(get_file_keywordsByonly); //把字符串分割为一个数组for(int m=0;m<idn.length;m++) //从第一个字符开始
{
for (int j = m + 1; m < idn.length; j++) //每到一个字符,和后面的字符比较
if ( (idn[m].length() > 0) && (idn[m].equals(idn[j]))) //如果有重复 idn[j] = ""; //把后面重复的清空
}//此时,IDN里没有重复的字符了
for(int m=0;m<idn.length;m++) //从第一个字符开始 if(idn[m]!="") //如果这个字符不是空 get_file_keywords=get_file_keywords+idn[m]+" "; //就把他接到char这个字符的内容之后
//比如,原来char=1,2, 现在找到了3,就把3接到1,2,后,变成1,2,3, //get_file_keywords=left(get_file_keywords,len(get_file_keywords)-1); //由于上面程序的原因,char字符最后多出来一个空格,用这个LEFT取CHAR长度-1个字符 archivesForm.setGet_file_keywords(get_file_keywords);
HashSet来过滤相同的数据比你自己实现的效率要高,因为你一个个判断,
时间复杂度可能是 O(n^2).
而HashSet根本不用判断,时间复杂度是O(n)
既简洁又高效的程序不用,真是想不通