4 Strings, Anfangsbuchstaben muss unterschiedlich sein

beta20

Top Contributor
Hallo,

ich habe 4 Strings (kann auch noch mehr werden).
Jeder String darf nur einmal vorkommen.
Wie löse ich das am Besten ohne zig if- Bedingungen einzubauen?

Danke für jede Hilfe
 
Da gibt es so viele Beispiele im Netz 😉
Java:
Set<String> names = new HashSet<>();
names.add("Paul");
names.add("Peter");
names.add("Peter");

// Inhalt des Sets: [Paul, Peter]
 
Brauchst du nicht, das ist ja der Sinn eines Sets.
In einem Set kann jedes Element nur einmal vorkommen.

Ob das Element hinzugefügt wurde kriegst du über die add-Methode heraus.
 
mit zwei for schleifen kann man das auch einfach lösen ist nur sehr umständlich.
Java:
boolean doppelt;
String Namen[];

for(int i1=0;i1<Namen.length();i1++)
for(int i2=0;i2<Namen.length();i2++)
if(i1!=i2&&Namen[i1]==Namen[i2])
doppelt=true;
 
mit zwei for schleifen kann man das auch einfach lösen ist nur sehr umständlich.
Java:
boolean doppelt;
String Namen[];

for(int i1=0;i1<Namen.length();i1++)
for(int i2=0;i2<Namen.length();i2++)
if(i1!=i2&&Namen[i1]==Namen[i2])
doppelt=true;

widersprechen sich "einfach" und "sehr umständlich" nicht? 😉

Der String-Vergleich wird so schief gehen, dafür sollte man equals nutzen.
 
Alternative: Erstelle ein Set für die Anfangsbuchstaben.
Falls Groß- und Kleinschreibung keine Rolle spielen sollen, dann konvertiere vor dem Hinzufügen stets nach LowerCase (oder Uppercase, ganz wie du willst).
Java:
    Set<Character> mySet = new HashSet<>(4); //wichtig: nur einmalig initialisieren und nicht jedesmal beim Hinzufügen eines Namens
    //...
    if (mySet.add(kleinerAnfangsBuchstabe)) {
        //was auch immer dann passieren soll. String in die Liste?
    }
 

Neue Themen


Zurück
Oben