Buchstaben, die in zwei Wörtern vorkommen

C.Hermanos

Mitglied
Hallo,
der Benutzer soll zwei beliege Wörter in der Konsole eingeben.
Die Konsole gibt dann aus, wieviele Buchstaben und welche in beiden Wörtern vorkommen.

Die Ausgabe sollte z.B. so aussehen:

Eingabe1: Halli
Eingabe2: Galli

Ausgabe: 3 Buchstaben sind in beiden Wörtern vorhanden: a,l,i

Ich habe eine Idee wie ich es machen würde bin mir aber nicht so sicher:

For-Schleifen durchlaufen lassen und in den For Schleifen if-Anweisungen, wo die beiden Wörter vergleicht.
Könnt ihr mir Tipps bzw Lösungsvorschläge geben?
Danke
 

XHelp

Top Contributor
Du hast die Wörter "Nudelsuppe" und "Pansensalat" aus einem Blatt Papier stehen. Wie würdest du die Aufgabe ohne Computer lösen?
 

XHelp

Top Contributor
Hört sich schon brauchbar an. Genau so musst du es auch umsetzen. Bedenke, dass du doppelte Buchstaben nicht berücksichtigen musst. Dazu lohnt es sich Set in Java anzuschauen.
Du kannst aber auch gleich ein Set für jedes Wort bilden und dann einfach die Schnittmenge ausgeben
 

nrg

Top Contributor
würd ich so machen:
Java:
		String s = "Dein String";
		Set<Character> set = new HashSet<Character>();
		for (char c : s.toCharArray())
			set.add(c);

mit Arrays.asList und dann addAll bzw das HashSet gleich mit dem Collection-Konstruktor instanzieren wird afaik net gehen. Ausser du erstellst manuell ein Character-Array. Da ist mir persönlich das obige lieber.
 

eRaaaa

Top Contributor
mit Arrays.asList und dann addAll bzw das HashSet gleich mit dem Collection-Konstruktor instanzieren wird afaik net gehen.

Außer man benutzt nicht Character sondern Strings mit der Länge 1 *g*

Java:
		Set<String> set = new HashSet<String>(Arrays.asList("Halli".toLowerCase().split("(?<=.)")));
		Set<String> set2 = new HashSet<String>(Arrays.asList("Galli".toLowerCase().split("(?<=.)")));

Dann einfach eines der Sets durchlaufen und das andere mit contains prüfen und nen Counter hochzählen :oops:
(würde aber auch bei der ersten Idee bleiben wohl...)
 
R

Raum114

Gast
Hier noch eine Alternative.
Java:
public class Main {

    public static void main(String[] args) {
        String a = "Halli";
        String b = "Galli";
        HashSet set = new HashSet();
        Matcher m = Pattern.compile("[" + a + "]", 2).matcher(b);
        for (int i = 0; m.find(i); i = m.end()) {
            set.add(m.group());
        }
        System.out.println(set);
    }
}
 

nrg

Top Contributor
naja ich denk da gibt's viele Möglichkeiten aber ich würd's primitiv halten. nachdems keine primitiven generics gibt, wenigstens mit wrapper und autoboxing. auf jedenfall würd ich nicht komplett auf generics verzichten, wie in deinem Beispiel :)
 

Landei

Top Contributor
Eine mergesort-artige Lösung ohne Sets:
Java:
        char[] w1 = "Halli".toCharArray();
        char[] w2 = "Galli".toCharArray();
        Arrays.sort(w1);
        Arrays.sort(w2);
        StringBuilder common = new StringBuilder();
        int i1 = 0;
        int i2 = 0;
        while (i1 < w1.length && i2 < w2.length) {
            char c1 = w1[i1];
            char c2 = w2[i2];
            if(c1 == c2) common.append(c1);
            while(c1 <= c2 && i1 < w1.length && w1[i1] == c1) i1++;
            while(c2 <= c1 && i2 < w2.length && w2[i2] == c2) i2++;
        }

        System.out.println(common);
 

C.Hermanos

Mitglied
Ersteinmal danke für eure Antworten!
Aber ich habe es wesentlich einfacher hinbekommen als eure Antworten xD

Java:
import java.util.Scanner;

public class buchstaben{
  public buchstaben(){
  
  Scanner sc = new Scanner(System.in);

  System.out.print("Eingabe1: ");
  String eingabe1 = sc.nextLine();
  
  System.out.print("Eingabe2: ");
  String eingabe2 = sc.nextLine();
  
  int count = 0;

  for (int i = 0;i < eingabe1.length(); i++){
    for(int k = 0;k < eingabe2.length(); k++){


     if(eingabe1.charAt(i) == eingabe2.charAt(k)){

     count++;
     }
    }
   }
  
  System.out.print("Ausgabe: " + count + " Buchstabe(n) sind in beiden Eingaben vorhanden\n");


  }
 public static void main(String [] args){
   new buchstaben();
 }
}

Allerdings:
Hier gibt er zurecht 1 aus:
Eingabe1: Hund
Eingabe2: Katze

Aber hier gibt er 6 aus, obwohl er 3 ausgeben sollte:
Eingabe1: Halli
Eingabe2: Galli

Wie mache ich das richtig?
 

nrg

Top Contributor
naja du findest eben 4x das l. was meinst du denn, warum wir dir Sets empfehlen?? du kannst jetzt entweder ein Set nehmen oder dir alle gefundenen Buchstaben merken und mit && !contains abprüfen. ahja, du zweckentfremdes da den Sinn eines Konstruktors ganz schön
 

Landei

Top Contributor
LOL! Viel einfacher, geht nur nicht...

<Weisheit>Es gibt zu jedem Problem eine einfache Lösung - und eine korrekte.</Weisheit>
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
kodela Gemittelte Ausgabe von Buchstaben Allgemeine Java-Themen 11
W Russische UND lateinische Buchstaben Allgemeine Java-Themen 19
Kingamadeus2000 Alle mehrfach vorkommenden Buchstaben rekursiv aus einem String entfernen. Allgemeine Java-Themen 6
parrot Gleiche Buchstaben Aufage Allgemeine Java-Themen 40
F In String 2 Buchstaben vertauschen Allgemeine Java-Themen 2
F Zurnung nach Buchstaben und deren Prüfung Allgemeine Java-Themen 9
Tacofan Hangman so viele Labels wie Buchstaben Allgemeine Java-Themen 5
L Menge der Buchstaben eines Textes zählen Allgemeine Java-Themen 3
KaffeeFan Methoden replace alle Buchstaben Allgemeine Java-Themen 3
P Methoden Häufigkeistverteilung von Buchstaben Allgemeine Java-Themen 2
I Eclipse API zur Buchstaben/Zeichensatzumwandlung Allgemeine Java-Themen 1
L Suchvorschläge beim eingeben einzelner Buchstaben Allgemeine Java-Themen 3
J Doppelte Buchstaben löschen - letztes Wort macht er nicht Allgemeine Java-Themen 2
S Char-index aller Buchstaben..? Allgemeine Java-Themen 3
S Entfernen von allen Nicht-Buchstaben chars aus einem String ohne Regex..? Allgemeine Java-Themen 10
P Unicode-Problem: Griechische Buchstaben Allgemeine Java-Themen 11
T Logische Abfolge von buchstaben kombinationen Allgemeine Java-Themen 12
G Buchstaben in umkekehrter Reihenfolge ausgeben Allgemeine Java-Themen 4
A Wort in seine Buchstaben zerlegen Allgemeine Java-Themen 37
S Methode zum Zählen von Buchstaben in Strings gesucht Allgemeine Java-Themen 11
E Spezielle Buchstaben darstellen? Allgemeine Java-Themen 7
J Java - 4-Buchstaben-Programm. Hilfe. ich hänge fest Allgemeine Java-Themen 7
Luma Buchstaben "umrechnen" in HEX-, DEC- und BIN-Forma Allgemeine Java-Themen 2
G Methode, die Buchstaben in Zahlen umwandelt? Allgemeine Java-Themen 13
Luma String in seine Buchstaben zerlegen? Allgemeine Java-Themen 3
M Buchstaben anordnen / Wortliste Allgemeine Java-Themen 2
I Suche Methode: Buchstaben in ASCII umwandelt Allgemeine Java-Themen 2
H Kann keine Zahlen von Buchstaben unterscheiden Allgemeine Java-Themen 4
A Buchstaben zählen Allgemeine Java-Themen 5
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
D Zwei Listen vergleichen Allgemeine Java-Themen 7
Tobero Wie berechnet man ob zwei Linien sich schneiden? Allgemeine Java-Themen 2
kodela Zwei gleichzeitig gedrückte Steuertasten Allgemeine Java-Themen 10
X Bedingung zwei mal überprüfen Allgemeine Java-Themen 4
Zrebna Random Number - Generische Formel zwischen zwei INKLUSIVEN Werten Allgemeine Java-Themen 16
D Input/Output Zwischen zwei ID-Räumen unterscheiden und Objekt löschen Allgemeine Java-Themen 16
D OOP Gemeinsamen ID-Raum für zwei Klassen implementieren Allgemeine Java-Themen 7
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
S Kann man Variablen oder Felder definieren deren Typ zwei Interfaces ist..? Allgemeine Java-Themen 9
K Aus String zwei Jahreszahlen auslesen Allgemeine Java-Themen 18
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
VfL_Freak Double mit zwei festen NK-Stellen ausgeben Allgemeine Java-Themen 9
Neoline Methoden Zwei Arrays abwechselnd zusammenführen Allgemeine Java-Themen 15
J Zwei Wavdateien gleichzeitig mit SourceDataLine abspielen Allgemeine Java-Themen 0
D Best Practice Die niedrigste Differenz zwischen zwei Listen ermitteln. Allgemeine Java-Themen 10
J Fahrroute zwischen zwei Punkten finden Allgemeine Java-Themen 1
J Kollision von zwei Kreisen Allgemeine Java-Themen 15
J Transfer von Integer zwischen zwei Clients - RMI Allgemeine Java-Themen 4
S Variablen split-Funkton mit zwei Variabeln verwenden? Allgemeine Java-Themen 4
T Alle Kombinationen aus zwei Arrays Allgemeine Java-Themen 8
G Liste zwischen zwei Kalenderdaten erstellen Allgemeine Java-Themen 3
AssELAss Zwei Arrays / ArrayLists inhaltlich vergleichen Allgemeine Java-Themen 2
H RegularExpression zwischen zwei Strings Allgemeine Java-Themen 2
P Zwei Applikationen mit einem Job Allgemeine Java-Themen 0
A Lineare Interpolation mit zwei Arrays Allgemeine Java-Themen 4
E Berechnung des Schnittpunktes von zwei Geraden Allgemeine Java-Themen 1
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
G Matrix reduzieren zwei Methoden Allgemeine Java-Themen 2
Dechasa Vergleichen von zwei Arrays Allgemeine Java-Themen 4
P Zwei ArrayLists: Ohne die eine überhaupt anzurühren, wird sie verändert Allgemeine Java-Themen 2
S Anwendung zum ausrechnen der Differenz von zwei Tagen Allgemeine Java-Themen 9
F Zwei LinkedHashMaps iterieren und vergleichen Allgemeine Java-Themen 2
M Zwei unterschiedliche JAR Dateien mit ANT erstellen Allgemeine Java-Themen 8
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
L Zwei Files miteinander vergleichen und Grafisch darstellen Allgemeine Java-Themen 1
T Zwei Wortendungen vergleichen ohne .equals Allgemeine Java-Themen 10
F Webstart zwei Java Versionen / aktivieren bzw deaktivieren Allgemeine Java-Themen 2
S Zwei Comparable (compareTo) vergleichen Allgemeine Java-Themen 6
E zwei Gleitkommazahlen durcheinander dividieren Allgemeine Java-Themen 2
X Generic muss zwei Klassen/Interfaces erfüllen Allgemeine Java-Themen 5
turmaline OOP zwei gleiche Methoden mit kleinen Unterschieden Allgemeine Java-Themen 15
C Threads Zwei Threads greifen auf LinkedList zu. Allgemeine Java-Themen 12
T Wie heißt ein Binärbaum, dessen Knoten immer zwei Kinder haben müssen? Allgemeine Java-Themen 2
C ActionListener zwei Buttons zuweisen Allgemeine Java-Themen 11
M Eclipse drei slashs durch zwei ersetzen? Allgemeine Java-Themen 3
1 zwei Strings vergleichen Allgemeine Java-Themen 16
J Gleiche Packagestruktur in zwei *.jar Dateien Allgemeine Java-Themen 4
G Zwei bytes vergleichen Allgemeine Java-Themen 2
B zwei-dimensionale Collections bzw. Array mit Indizes Allgemeine Java-Themen 3
C Zwei Arrays vereinen Allgemeine Java-Themen 3
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5
H Zwei verschiedene Dateien mittels einem Binärstream übertragen? Allgemeine Java-Themen 13
N hashCode() für zwei ints Allgemeine Java-Themen 5
turmaline Gleichheit von zwei Maps Map <String, Map <String, String>> Allgemeine Java-Themen 30
N Wie Listenabgleich auf zwei CPU Cores auslagern? Allgemeine Java-Themen 6
D Zufall wahr bzw. falsch mit zwei Faktoren Allgemeine Java-Themen 10
H Datenaustausch zwischen zwei Java-Programmen Allgemeine Java-Themen 5
H Ausgabe von zwei Textfeldern Allgemeine Java-Themen 3
H Zwei unabhängige Threads miteinander kommunizieren lassen Allgemeine Java-Themen 3
G zwei mal synchronized Allgemeine Java-Themen 5
Z zwei Daten vergleichen Allgemeine Java-Themen 4
C ArrayList anhand von zwei Attributen sortieren Allgemeine Java-Themen 4
S Alle Elemente von zwei Listen vergleichen Allgemeine Java-Themen 10
T IText: Zwei A4 PDF´s auf ein A3 PDF´s Allgemeine Java-Themen 2
J Verschachtelte ListIteratoren um in zwei Listen hin und herzugehen Allgemeine Java-Themen 5
A Differenz zwischen zwei Uhrzeiten Allgemeine Java-Themen 7
H Shortcut ruft zwei Menu-punkte auf Allgemeine Java-Themen 5
J Zwei konstruktoren? Allgemeine Java-Themen 8
A zwei listen vergleichen und unterschiede anzeigen Allgemeine Java-Themen 3
J Zwei sortierte Listen zusammenfassen Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben