0

私は持っているString cat = "cat1, cat1, cat1, cat1, cat2, cat2, cat2, cat3";

する必要があるString cat = "cat1, cat2, cat3";

これを行う方法 ?

それは私の解決策ですが、優れていません:

String[] words = cat.split(",");
Arrays.sort(words);
....
4

3 に答える 3

7

あなたはこれを試すことができます -

String cat = "cat1,cat1,cat1,cat1,cat2,cat2,cat2,cat3";
Set<String> set = new HashSet<String>(Arrays.asList(cat.split(",")));
于 2013-01-23T09:15:55.327 に答える
5

試す

String cat = "cat1, cat1, cat1, cat1, cat2, cat2, cat2, cat3";
String text = new TreeSet<String>(Arrays.asList(cat.split(", "))).toString();
String cats = text.substring(1, text.length()-1);
System.out.println(cats);

これにより、必要な文字列が生成されます。

cat1, cat2, cat3
于 2013-01-23T09:18:12.833 に答える
1

ここ:

//hash
HashSet<String> hs = new HashSet<String>();
String[] words = cat.split(",");
for(int i = 0;i < words.length; i++) hs.add(words[i]);

//dehash
StringBuilder builder = new StringBuilder();
Iterator it = hs.iterator();
while(it.hasNext())
{
    builder.append(it.next());
    builder.append(",");
}
String dehashed = builder.toString();
于 2013-01-23T09:21:00.630 に答える