2009-09-02 8 views
3

Je veux imiter une fonctionnalité Python en Java. En Python si je veux des caractères uniques dans une chaîne que je peux le faire,Java équivalent d'une fonctionnalité Python -> set (string)

text = "i am a string" 
print set(text) # o/p is set(['a', ' ', 'g', 'i', 'm', 'n', 's', 'r', 't']) 

Comment puis-je faire cela en Java trivialement ou directement?

Répondre

7
String str = "i am a string"; 
System.out.println(new HashSet<String>(Arrays.asList(str.split("")))); 

EDIT: Pour ceux qui objectent qu'ils ne sont pas exactement équivalents car str.split comprendra une chaîne vide dans l'ensemble, nous pouvons le faire encore plus bavard:

String str = "i am a string"; 
Set<String> set = new HashSet<String>(Arrays.asList(str.split(""))); 
set.remove(""); 
System.out.println(set); 

Mais Bien sûr, cela dépend de ce que vous devez accomplir.

+3

python gagne 4 sursauts – Claudiu

+1

Cela ne fonctionne pas tout à fait car String.split ("") inclut une chaîne vide dans le résultat, par ex. "bonjour" .split ("") est '', 'h', 'e', ​​'l', 'l', 'o'. – mikej

+0

@mikej bien techniquement la sortie est '', 'h', 'e', ​​'l', 'o'. Mais je comprends votre point. La solution actuelle fonctionne pour moi cependant parce que je traite plus loin le résultat de cette opération. – Chantz