一段字符串
  
         "A B AA NN ER A B B NN ER BC" 中间有空格   写个类  把相同的去掉
  
     输出=====》   "A B AA NN ER BC" 中间有空格   在JSP下调用

解决方案 »

  1.   

    public static void main(String[] args) {
    String[] str = {"A ","B ","AA ","NN ","ER ","A ","B ","B ","NN ","ER ","BC"};
    Set hs = new LinkedHashSet();
    for(int i = 0; i < str.length; i ++){
    hs.add(str[i]);
    }
    System.out.print(hs.toString());
    }
      

  2.   

    public class DemoClass { /**
     * @param args
     */
    public static void main(String[] args) { 
    String[] str = "A B AA NN ER A B B NN ER BC".split("\\s+"); 
    Set<String> set = new LinkedHashSet<String>(); 
    for(int i = 0; i  < str.length; i ++)
    set.add(str[i]); 
    System.out.print(set); 
    }
    }
      

  3.   

    import java.util.*;
    public class RemoveSame
    {
        public static void main(String[] args)
        {
            String str = "A B AA NN ER A B B NN ER BC";
            System.out.println(removeSameString(str));
        }    private static String removeSameString(String str)
        {
            Set<String> mLinkedSet = new LinkedHashSet<String>();
            String[] strArray = str.split(" ");
            StringBuffer sb = new StringBuffer();        for (int i = 0; i < strArray.length; i++)
            {
                if (!mLinkedSet.contains(strArray[i]))
                {
                    mLinkedSet.add(strArray[i]);
                    sb.append(strArray[i] + " ");
                }
            }
            return sb.toString().substring(0, sb.toString().length()-1);
        }
    }
      

  4.   

    1 先用split 分开
    2 放入 set 里面,剔除重复的
    3 重新生成结果字符串,
      

  5.   

    正则替换。 public  void getStr(String str){
    String newStr="";
    str="A B AA NN ER A B B NN ER BC";//亦可接收参数
    str=str.trim();
    int index;

    while(true){
    index=str.indexOf(" ");
    if(index==-1){
    newStr+=str;
    break;
    }
    String strItem=str.substring(0,index);
    newStr+=strItem+" ";
    str=str.substring(index);
    str=str.replaceAll("( "+strItem+")+ "," ");
    str=str.trim();
    }
    System.out.println(newStr);
    }
      

  6.   


         String[] str="A B AA NN ER A B B NN ER BC".split(" ");
        Set<String> set=new HashSet<String>(Arrays.asList(str));
        System.out.println(set);       
      

  7.   

    return new LinkedHashSet(new Arrays.asList(str.split(" "))).toString();
      

  8.   

    先对单词排序,相同的单词相邻,仅留下相邻中的一个,其他删去。
    时间复杂度:取决于排序算法,最好为O(nlogn)
    空间复杂度:O(n)
      

  9.   

    public class Test {    public static void main(String[] args) {
            String str = "A B AA NN ER A B B NN ER BC CB ERR RER";
            
            // 存储原字符串字符数组
            char[] cs = str.toCharArray();
     
            // 存储子字符串字符
            char[] sub = new char[str.length()];        // 存储唯一的子字符串
            String[] strs = new String[str.length()];
            int offset = 0;
            for(int i = 0, len = 0; i < cs.length; i++) {
                if(cs[i] != ' ') {
                    sub[len++] = cs[i];
                    if(i != cs.length - 1) {
                        continue;
                    }
                }
                if(len == 0) {
                    continue;
                }
                // 获得非空格子串
                String substring = new String(sub, 0, len);
                strs[offset++] = substring;
                // 找出当前串后的字符串,并将其置为空格
                for(int j = i + 1, slen = substring.length(), m = cs.length - slen + 1; j < m; j++) {
                    if(cs[j] == ' ') {
                        continue;
                    }
                    boolean b = substring.equals(new String(cs, j, slen)) && cs[j - 1] == ' ';
                    b = (b && j + slen <= m) ? (b && cs[j + slen] == ' ') : b;
                    if(b) {
                        for(int k = j; k < j + len; k++) {
                            cs[k] = ' ';
                        }
                    }
                }
                len = 0;
            }
            
            // 输出
            for(int i = 0; i < offset; i++) {
                if(i > 0) {
                    System.out.print(" ");
                }
                System.out.print(strs[i]);
            }
            System.out.println();
        }
    }