Seite 1 von 1
Java: Buchstaben "aussortieren"
#1
geschrieben 07. Mai 2008 - 00:26
Hallo Forum,
Ich habe vor aus einem variablen Text (vlt. mit jTextArea) jeden einzelnen Buchstaben aus zu sortieren um diese durch eine andere Schreibweise zu ersetzen (halt wie eine Geheimsprache ).
Ist dies Überhaupt möglich? Und wenn ja wüsste ich gern wie^^ Ich bin noch Anfänger im Programmieren, habe es aber schon mit Hilfe von NetBeans geschafft ein Programm zu schreiben in dem ich ein "relativ" kompliziertes Mathematisches Problem lösen kann^^
Hoffe ihr könnt mir helfen
MfG
Heavenslord
Ich habe vor aus einem variablen Text (vlt. mit jTextArea) jeden einzelnen Buchstaben aus zu sortieren um diese durch eine andere Schreibweise zu ersetzen (halt wie eine Geheimsprache ).
Ist dies Überhaupt möglich? Und wenn ja wüsste ich gern wie^^ Ich bin noch Anfänger im Programmieren, habe es aber schon mit Hilfe von NetBeans geschafft ein Programm zu schreiben in dem ich ein "relativ" kompliziertes Mathematisches Problem lösen kann^^
Hoffe ihr könnt mir helfen
MfG
Heavenslord
Anzeige
#2
geschrieben 07. Mai 2008 - 05:17
es gibt funktionen die das machen.
String [] blubb = ursprungsstring.split("");
oder
.toCharArray
oder
string1 = string1.replace("x", "y");
das erste macht ein array von strings aus dem ersten string.
das zweite ein array von chars aus dem string.
das dritte ersetzt alle x mit y in dem string is wohl am geeignetsten für dien vorhaben.
ps.: mathematische sachen sind immer einfacher als solche hier.
String [] blubb = ursprungsstring.split("");
oder
.toCharArray
oder
string1 = string1.replace("x", "y");
das erste macht ein array von strings aus dem ersten string.
das zweite ein array von chars aus dem string.
das dritte ersetzt alle x mit y in dem string is wohl am geeignetsten für dien vorhaben.
ps.: mathematische sachen sind immer einfacher als solche hier.
#3
geschrieben 07. Mai 2008 - 10:09
Hey super =)
Es hat auf Anhieb funktioniert.
Hier meine Umsetzung^^
Da brauchte ich für mein Matheprogramm schon einiges mehr xD
Ich glaub das einzige was mir für Java noch fehlt ist ein wenig Übung und der "Wortschatz" xD
Vielen Dank
Heavenslord
Es hat auf Anhieb funktioniert.
Hier meine Umsetzung^^
public void TextToGeheim() { String str_Text = jTextArea1.getText(); str_Text = str_Text.replace("x","y"); jTextArea1.setText(str_Text); }
Da brauchte ich für mein Matheprogramm schon einiges mehr xD
Ich glaub das einzige was mir für Java noch fehlt ist ein wenig Übung und der "Wortschatz" xD
Vielen Dank
Heavenslord
#4
geschrieben 07. Mai 2008 - 10:45
In der Kürze liegt die Würze
http://java.sun.com/javase/6/docs/api
Jetzt fehlt dir wirklich nur noch Übung mit dem Wortschatz.
jTextArea1.setText(jTextArea1.getText().replace("x", "y"));
Zitat
und der "Wortschatz"
http://java.sun.com/javase/6/docs/api
Jetzt fehlt dir wirklich nur noch Übung mit dem Wortschatz.
#5
geschrieben 07. Mai 2008 - 10:53
#6
geschrieben 07. Mai 2008 - 11:14
replace() liefert einen String zurück, du kannst das also endlos kombinieren "foo".replace("f", "p").replace("o", "s") usw.
Und zu Java gehört noch weit mehr als der "Wortschatz", den kann sowieso niemand auswendig
Und zu Java gehört noch weit mehr als der "Wortschatz", den kann sowieso niemand auswendig
#7
geschrieben 07. Mai 2008 - 11:51
Wird das nicht irgendwann ziemlich unsauber? Schließlich haben wir 59 verschiedene Buchstaben in unserem Alphabet wenn man die Groß- und Kleinschreibung mit einbezieht^^
Das ist mir bewusst Aber wenn ich da ein wenig mehr wissen würde, bräucht ich für ein Programm nicht mehr ganz so lang xD
Zitat
Und zu Java gehört noch weit mehr als der "Wortschatz", den kann sowieso niemand auswendig
Das ist mir bewusst Aber wenn ich da ein wenig mehr wissen würde, bräucht ich für ein Programm nicht mehr ganz so lang xD
Dieser Beitrag wurde von Heavenslord bearbeitet: 07. Mai 2008 - 11:57
#8
geschrieben 07. Mai 2008 - 12:18
Klar wird das unübersichtlich, du musst das ja auch nicht so machen. Am performantesten wäre es sicher den String mit .toCharArray() in ein Array von Charactern umzuwandeln, darüber zu iterieren und mit einem switch-case-Block den neuen String in einen StringBuilder zu schreiben.
Ungefähr so (ungetestet):
In dem Beispiel wird jetzt a durch x, b durch y ersetzt. Bei allen unbekannten Chars fliegt eine IllegalArgumentException.
Edit: OK, wirklich performant ist das bei vielen unterstützen Chars doch nicht, da sollte man vielleicht eher was mit einem Baum basteln.
Ungefähr so (ungetestet):
public String foo(final String str){ StringBuilder sb = new StringBuilder(str.length()); for(char c : str.toCharArray()){ switch(c){ case 'a': sb.append('x'); case 'b': sb.append('y'); default: throw new IllegalArgumentException("Unnkown char " + c); } } return sb.toString(); }
In dem Beispiel wird jetzt a durch x, b durch y ersetzt. Bei allen unbekannten Chars fliegt eine IllegalArgumentException.
Edit: OK, wirklich performant ist das bei vielen unterstützen Chars doch nicht, da sollte man vielleicht eher was mit einem Baum basteln.
Dieser Beitrag wurde von G.I.Joe bearbeitet: 07. Mai 2008 - 12:30
#9
geschrieben 07. Mai 2008 - 21:35
str_text = str_text.replace("M", "/\/\");
kann mir hier jemand helfen? xD
#10
geschrieben 07. Mai 2008 - 21:47
das "\" ist ne escape sequenz. wenn du ein \ haben willst, musst du \\ eingeben.
#11
geschrieben 07. Mai 2008 - 21:49
Bei \\ bekomme ich dann also nur \ raus?
Edit: Habe es getestet xD funktioniert einwandfrei^^ Vielen Dank =)
Edit: Habe es getestet xD funktioniert einwandfrei^^ Vielen Dank =)
Dieser Beitrag wurde von Heavenslord bearbeitet: 07. Mai 2008 - 21:54
#12
geschrieben 07. Mai 2008 - 21:50
jo. das gleiche ist, wenn du beispielsweise ein " haben willst, dann klemmste auch ein \" davor und bekommst ein ".
Thema verteilen:
Seite 1 von 1