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
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
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####--"));
}
}