大致说一下我的想法,用StringTokenizer获取分割的单词,然后全部添加到一个TreeSet中,再用Iterator遍历输出。

解决方案 »

  1.   

    谢谢 能不能详细讲一下TreeSet的用法哪? 最好举个例子来说明一下怎么定义 怎么初始化
    怎么赋值. 谢谢了!
      

  2.   

    我有两个类似的问题,不过是单个字符的比较
    你可以参考一下
    楼上的有理.
    http://expert.csdn.net/Expert/topic/2945/2945504.xml?temp=.1984217
      

  3.   

    我仔细看了一下 可是还是不太明白 我只是想知道在java里怎么定义数组 结构 tree等 
    最好能给几个例子 谢谢了
      

  4.   

    import java.util.*;public class TestWordFetcher {
      
      public static void main(String[] args) {
        String str = "She love ?? you !!\n\nHELL neck. THE you love the god!!!\n";
        System.out.println(">>>>>>>>>>Original string<<<<<<<<<");
        System.out.println(str);
        TreeSet res = fetchIt(str);
        System.out.println(">>>>>>>>>>>>>>Result<<<<<<<<<<<<<<");
        Iterator it = res.iterator();
        while (it.hasNext()) System.out.println(it.next());
      }
      
      public static TreeSet fetchIt(String s) {
        String delim = ",.?!;'\" \t\r\n\f<>/\\|}{[]`1234567890-=+_)(*&^%$#@!~";
        StringTokenizer st = new StringTokenizer(s, delim);
        int count = st.countTokens();
        TreeSet ts = new TreeSet();
        for (int i = 0; i < count; i++) {
          ts.add(st.nextToken().toLowerCase());
        }
        return ts;
      }
      
    }// 上述实现中判断去除字符的方法比较弱,最好自己再另外写个方法处理。
      

  5.   

    // 改版:import java.util.*;public class TestWordFetcher {
      
      public static void main(String[] args) {
        String str = "She love ?? you !!\n\nHELL neck. THE you love the god!!!\n";
        System.out.println(">>>>>>>>>>Original string<<<<<<<<<");
        System.out.println(str);
        TreeSet res = fetchIt(str);
        System.out.println(">>>>>>>>>>>>>>Result<<<<<<<<<<<<<<");
        Iterator it = res.iterator();
        while (it.hasNext()) System.out.println(it.next());
      }
      
      public static TreeSet fetchIt(String s) {
        String neat = getNeaterString(s);
        StringTokenizer st = new StringTokenizer(neat, " ");
        int count = st.countTokens();
        TreeSet ts = new TreeSet();
        for (int i = 0; i < count; i++) {
          ts.add(st.nextToken().toLowerCase());
        }
        return ts;
      }
      
      private static String getNeaterString(String str) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length(); i++) { 
          if (isCharacter(str.charAt(i))) sb.append(str.charAt(i));
          else sb.append(' ');
        }
        return sb.toString();
      }  private static boolean isCharacter(char c) {
        if (((int)c>=65&&(int)c<=90)||((int)c>=97&&(int)c<=122)) return true;
        else return false;
      }
      
    }// getNeaterString方法在返回值中将原字符串的非字母字符替换成空格。
    // isCharacter方法用于判断字符是否是字母。