Genutzte Methoden in einen Frame einbauen

Diskutiere Genutzte Methoden in einen Frame einbauen im AWT, Swing, JavaFX & SWT Forum; Liebe JAVA-Freunde, ich bin neu in dem Metier, möchte mich aber wirklich sehr gerne in JAVA weiter fortbilden. Ich hatte mir eine simple Aufgabe...

  1. JAVA-Neuling17
    JAVA-Neuling17 Neues Mitglied
    Liebe JAVA-Freunde,

    ich bin neu in dem Metier, möchte mich aber wirklich sehr gerne in JAVA weiter fortbilden.

    Ich hatte mir eine simple Aufgabe überlegt "Buchstaben zählen und verschieden große Buchstabenfolgen miteinander vergleichen". Dazu nutze ich einen "main String s" und drei verschiedene Teilstrings (s. im JAVA Code).

    Könnt' Ihr mir vielleicht weiterhelfen?

    1. Ich verstehe z.B. nicht, wieso "s.lastindexOf(?)" nicht funktioniert; ich würde sehr gerne die Platzierung des letzten Buchstabens vom Teilstring ausgeben lassen, aber es funktioniert einfach nicht (es gibt immer die Error-Meldung, dass das Symbol "s" nicht gefunden werden konnte, aber "s" habe ich doch definiert? Um das zu umgehen, nutze ich jetzt "s.indexOf(?) + ?.length()" um den Schluss herauszubekommen - aber hier wird doch auch "s" genutzt - ich hoffe, Ihr könnt mir weiterhelfen.

    2. Gibt es eine Möglichkeit, um die Teilstrings mit der Buchstabenfolge "s" abzugleichen?
    Also nicht nur "true" oder "false", sondern auch Teilergebnisse, wie "s" ist mit "X" zu xx%
    identisch unter Angabe bis wohin bzw. ob ein/zwei/x Buchstaben verschieden sind:
    Quasi wie ein Alignment.

    In etwa so: s1= AAABBABBBBCCCCTTTT // X= AAAA
    -> X ist mit s identisch von 1-3 mit Prozentangabe

    3. Im Meshlab funktioniert der angegebene Code, es wäre jedoch wünschenswert alle Aufgaben in einem Frame darzustellen.

    In etwa so:

    1. Fenster: "Geben Sie die Buchstabenfolge ein" - OK
    2. Abgleich mit diversen (vorgegebenen) Folgen
    -> X = AAAA/Y=BBB/Z=TTC - drei oder mehr Buttons, um den Vergleich auszuführen
    3. Ergebnis mit allen angegebenen Vorgaben (Länge der genutzten
    Buchstabenfolge "s", Länge der einzelnen Folgen, Beginn und Ende der Folge
    in "s", 100% fit = "true"-Angabe und ansonsten zu wie viel Prozent unter der
    Angabe der identischen Buchstabenfolge, Substitution des Teilstrings im Main String mit dem neuen Zeichen wie "X")

    Ich hoffe, ich habe es einigermaßen verständlich schreiben können ;) und freue mich auf Eure Hilfe und Anregungen!

    Noch zum Code:
    1. // ich füge Absätze ein, um mehr Überblick nach dem Compilieren zu haben
    2. // bei "s.indexOf(X)+1)" habe ich (+1) angegeben, damit die Suche nicht bei 0 startet.

    Vielen Dank und viele Grüße

    Chris

    Code (Java):

    public class Buchstaben {
    public static void main(String[] args){
    System.out.println();
    System.out.print("Genutzte Buchstaben: AAAABBBBCCCTTTTC " );
    System.out.println();
    System.out.println();
    String s="AAAABBBBCCCTTTTC";
    System.out.print("Wie viele Buchstaben sind vorhanden? ");
    System.out.println(s.length());
    System.out.println();
    System.out.print("Sind nachfolgende Buchstabenkombinationen vorhanden? ");
    System.out.println();
    System.out.println();
    System.out.print("Ist X = (AAAA) vorhanden? ");
    System.out.println(s.contains("AAAA"));
    String X="AAAA";
    System.out.print("Wie viele Buchstaben sind in X? ");
    System.out.println(X.length());
    System.out.print("Wo beginnt X in der genutzten Folge?__Bei: ");
    System.out.println(s.indexOf(X)+1);
    System.out.print("Wo endet X in der genutzten Folge?__Bei: ");
    System.out.println(s.indexOf(X)+ (X.length()));
    System.out.println();
    System.out.print("Ist Y =(CCC) vorhanden? ");
    System.out.println(s.contains("CCC"));
    String Y= "CCC";
    System.out.print("Wie viele Buchstaben sind in Y? ");
    System.out.println(Y.length());
    System.out.print("Wo beginnt Y in der genutzten Folge?__Bei: ");
    System.out.println(s.indexOf(Y)+1);
    System.out.print("Wo endet Y in der genutzten Folge?__Bei: ");
    System.out.println(s.indexOf(Y)+ (Y.length()));
    System.out.println();
    System.out.print("Ist Z (TCT) vorhanden? ");
    System.out.println(s.contains("TCT"));
    String Z="TCT";
    System.out.print("Wie viele Buchstaben sind in Z? ");
    System.out.println(Z.length());
    System.out.print("Wo beginnt Z in der genutzten Folge?__Bei: ");
    System.out.println(s.indexOf(Z)+1);
    System.out.print("Wo endet Z in der genutzten Folge?__Bei: ");
    System.out.println(s.indexOf(Z)+ (Z.length()));
    System.out.println();
    System.out.print("MATCH-UP WITH X : " );
    System.out.println(s.replace("AAA", "####X####--"));
    System.out.print("MATCH-UP WITH Y : " );
    System.out.println(s.replace("CCC", "####H2####--"));
    System.out.print("MATCH-UP WITH Z : " );
    System.out.println(s.replace("TCT", "####H3####--"));
    }
    }
     
     
  2. Vielleicht hilft dir dieses Training hier weiter.
  3. ralfb1105
    ralfb1105 Mitglied
    Hallo Chris,

    da ich auch Neuling bin, erst einmal nur eine Antwort zu 1.) - Ich konnte das in meiner Umgebung ohne Probleme testen:

    Code (Java):
    public class Buchstaben {

        public static void main(String[] args) {

            System.out.println();
            System.out.print("Genutzte Buchstaben: AAAABBBBCCCTTTTC ");
            System.out.println();
            System.out.println();
            String s = "AAAABBBBCCCTTTTC";
            System.out.print("Wie viele Buchstaben sind vorhanden? ");
            System.out.println(s.length());
            System.out.println();
            System.out.print("Sind nachfolgende Buchstabenkombinationen vorhanden? ");
            System.out.println();
            System.out.println();
            System.out.print("Ist X = (AAAA) vorhanden? ");
            System.out.println(s.contains("AAAA"));
            String X = "AAAA";
            System.out.print("Wie viele Buchstaben sind in X? ");
            System.out.println(X.length());
            System.out.print("Wo beginnt X in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(X) + 1);
            System.out.print("Wo endet X in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(X) + (X.length()));
            String XX = "A";
            System.out.println("RalfB: Wo endet X in der genutzten Folge?__Bei: " +s.lastIndexOf(XX));
            System.out.println();
            System.out.print("Ist Y =(CCC) vorhanden? ");
            System.out.println(s.contains("CCC"));
            String Y = "CCC";
            System.out.print("Wie viele Buchstaben sind in Y? ");
            System.out.println(Y.length());
            System.out.print("Wo beginnt Y in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(Y) + 1);
            System.out.print("Wo endet Y in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(Y) + (Y.length()));
            System.out.println();
            System.out.print("Ist Z (TCT) vorhanden? ");
            System.out.println(s.contains("TCT"));
            String Z = "TCT";
            System.out.print("Wie viele Buchstaben sind in Z? ");
            System.out.println(Z.length());
            System.out.print("Wo beginnt Z in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(Z) + 1);
            System.out.print("Wo endet Z in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(Z) + (Z.length()));
            System.out.println();
            System.out.print("MATCH-UP WITH X : ");
            System.out.println(s.replace("AAA", "####X####--"));
            System.out.print("MATCH-UP WITH Y : ");
            System.out.println(s.replace("CCC", "####H2####--"));
            System.out.print("MATCH-UP WITH Z : ");
            System.out.println(s.replace("TCT", "####H3####--"));

        }

    }
    Hier die dazugehörige Ausgabe:

    Code (Text):
    Genutzte Buchstaben: AAAABBBBCCCTTTTC

    Wie viele Buchstaben sind vorhanden? 16

    Sind nachfolgende Buchstabenkombinationen vorhanden?

    Ist X = (AAAA) vorhanden? true
    Wie viele Buchstaben sind in X? 4
    Wo beginnt X in der genutzten Folge?__Bei: 1
    Wo endet X in der genutzten Folge?__Bei: 4
    RalfB: Wo endet X in der genutzten Folge?__Bei: 3

    Ist Y =(CCC) vorhanden? true
    Wie viele Buchstaben sind in Y? 3
    Wo beginnt Y in der genutzten Folge?__Bei: 9
    Wo endet Y in der genutzten Folge?__Bei: 11

    Ist Z (TCT) vorhanden? false
    Wie viele Buchstaben sind in Z? 3
    Wo beginnt Z in der genutzten Folge?__Bei: 0
    Wo endet Z in der genutzten Folge?__Bei: 2

    MATCH-UP WITH X : ####X####--ABBBBCCCTTTTC
    MATCH-UP WITH Y : AAAABBBB####H2####--TTTTC
    MATCH-UP WITH Z : AAAABBBBCCCTTTTC
    Wie Du an der Zeile

    siehst funktioniert es wie erwartet... ich kann hier kein problem feststellen.

    Ich habe Java 8 und Eclipse als IDE.

    Gruß

    Ralf
     
  4. JAVA-Neuling17
    JAVA-Neuling17 Neues Mitglied
    Hallo Ralf,
    vielen Dank für Deine schnelle Rückmeldung.
    Wenn ich Deinen Code eingebe funktioniert es auch bei mir.
    Bei der Eingabe bei Zeile 23-25 ergibt sich trotzdem folgender Fehler:

    "BS.java:25: error: cannot find symbol
    System.out.println(s.lastindexOf(XX));
    ^
    symbol: method lastindexOf(String)
    location: variable s of type String
    1 error"

    Verstehe ich irgendwie nicht...
    Woran könnte das liegen?

    VG

    Chris


    Code (Java):

    public class BS {

        public static void main(String[] args) {

            System.out.println();
            System.out.print("Genutzte Buchstaben: AAAABBBBCCCTTTTC ");
            System.out.println();
            System.out.println();
            String s = "AAAABBBBCCCTTTTC";
            System.out.print("Wie viele Buchstaben sind vorhanden? ");
            System.out.println(s.length());
            System.out.println();
            System.out.print("Sind nachfolgende Buchstabenkombinationen vorhanden? ");
            System.out.println();
            System.out.println();
            System.out.print("Ist X = (AAAA) vorhanden? ");
            System.out.println(s.contains("AAAA"));
            String X = "AAAA";
            System.out.print("Wie viele Buchstaben sind in X? ");
            System.out.println(X.length());
            System.out.print("Wo beginnt X in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(X) + 1);
            System.out.print("Wo endet X in der genutzten Folge?__Bei: ");
            String XX ="AAAA";
            System.out.println(s.lastindexOf(XX));
            System.out.println();
            System.out.print("Ist Y =(CCC) vorhanden? ");
            System.out.println(s.contains("CCC"));
            String Y = "CCC";
            System.out.print("Wie viele Buchstaben sind in Y? ");
            System.out.println(Y.length());
            System.out.print("Wo beginnt Y in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(Y) + 1);
            System.out.print("Wo endet Y in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(Y) + (Y.length()));
            System.out.println();
            System.out.print("Ist Z (TCT) vorhanden? ");
            System.out.println(s.contains("TCT"));
            String Z = "TCT";
            System.out.print("Wie viele Buchstaben sind in Z? ");
            System.out.println(Z.length());
            System.out.print("Wo beginnt Z in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(Z) + 1);
            System.out.print("Wo endet Z in der genutzten Folge?__Bei: ");
            System.out.println(s.indexOf(Z) + (Z.length()));
            System.out.println();
            System.out.print("MATCH-UP WITH X : ");
            System.out.println(s.replace("AAA", "####X####--"));
            System.out.print("MATCH-UP WITH Y : ");
            System.out.println(s.replace("CCC", "####H2####--"));
            System.out.print("MATCH-UP WITH Z : ");
            System.out.println(s.replace("TCT", "####H3####--"));

        }

    }
     
     
  5. fhoffmann
    fhoffmann Aktives Mitglied
    Das i von lastIndexOf muss groß geschrieben werden
     
  6. JAVA-Neuling17
    JAVA-Neuling17 Neues Mitglied
    Danke!! Jetzt kann ich es zumindest compilieren, aber es wird mir dennoch der falsche Wert angegeben.

    "Ist X = (AAAA) vorhanden? true
    Wie viele Buchstaben sind in X? 4
    Wo beginnt X in der genutzten Folge?__Bei: 1
    Wo endet X in der genutzten Folge?__Bei: 0
    --> müsste ja aber 4 lauten..."

    VG
     
    Zuletzt bearbeitet: 4. Dez. 2018
  7. mihe7
    mihe7 Bekanntes Mitglied
    a.lastIndexOf(b) gibt den Index des letzten Vorkommens der Zeichenfolge b in a zurück (oder -1, falls b überhaupt nicht in a vorkommt).

    Wo beginnt "AAA" in der Zeichenfolge "AAA"? Richtig, bei Index 0, daher bekommt ihr auch 0 ausgegeben.

    Quizfrage: wie müsste man also lastIndexOf richtig verwenden?
     
  8. JAVA-Neuling17
    JAVA-Neuling17 Neues Mitglied
    Ja, aber ich suche ja nicht den Anfang von X, sondern das Ende. Mit "s.lastIndexOf(X)" suche ich doch das letzte Vorkommen von X im Main String "s". Wenn ich also nach "AAAA" suche und diese Folge kommt in "s" an Stelle 4 das letzte mal vor, stimmt doch die Überlegung, oder?
    Bitte aufklären - vielen Dank!

    VG
     
  9. Robat
    Robat Bekanntes Mitglied
    Dann implementiere dir doch deine eigene Methode. Ist sicherlich auch eine gute Übung ;)
    BTW: Die Sprache heißt Java nicht JAVA ... SCNR :p
     
    mihe7 gefällt das.
  10. mihe7
    mihe7 Bekanntes Mitglied
    Nein. Wenn s="AAAABBBBCCCTTTTC", dann kommt "AAAA" das einzige (und damit auch das letzte) mal an Stelle 0 vor.

    Wäre s="AAAABAAAACDEF", dann wäre s.lastIndexOf("AAAA") == 5, dann das erste mal kommt es an Stelle 0 vor, das zweite (und letzte) mal an Stelle 5.
     
  11. JAVA-Neuling17
    JAVA-Neuling17 Neues Mitglied
    Hallo mihe7,
    danke für die Aufklärung! Weill ich "AAAA" als Ganzes betrachten muss, kommt es logischerweise auch nur am Index 0 vor - ok, verstanden. Danke! Aber wie kann ich es dann am besten machen, dass mir der letzte Buchstabe von X ausgegeben wird?

    @ Robat: Eigentlich war das als ernst gemeinte Frage gedacht und nicht als "Lachnummer". Schade - eine Hilfe Deinerseits wäre sicherlich hilfreicher gewesen ;)
     
  12. Wenn du Java lernen möchtest, empfehlen wir dir dieses Online-Training hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Genutzte Methoden in einen Frame einbauen - Ähnliche Themen

Ungenutzte Klassen und Methoden finden
Ungenutzte Klassen und Methoden finden im Forum Allgemeine Java-Themen
Würdet Ihr Euch bei einer intern genutzten Anwendung auf Cookies verlassen?
Würdet Ihr Euch bei einer intern genutzten Anwendung auf Cookies verlassen? im Forum Netzwerkprogrammierung
Aus "import" die genutzte Library erfahren
Aus "import" die genutzte Library erfahren im Forum Java Basics - Anfänger-Themen
Programm das automatisch ungenutzten Source-Code entfernt..?
Programm das automatisch ungenutzten Source-Code entfernt..? im Forum Allgemeine Java-Themen
JTree nicht genutzte Pfade schließen
JTree nicht genutzte Pfade schließen im Forum Allgemeine Java-Themen
Thema: Genutzte Methoden in einen Frame einbauen