WinFuture-Forum.de: Java: Buchstaben "aussortieren" - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Java: Buchstaben "aussortieren"


#1 Mitglied ist offline   Heavenslord 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 11. März 08
  • Reputation: 0
  • Geschlecht:Männlich

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 :D ).

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
0

Anzeige



#2 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

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.
0

#3 Mitglied ist offline   Heavenslord 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 11. März 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 07. Mai 2008 - 10:09

Hey super =)

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
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 07. Mai 2008 - 10:45

In der Kürze liegt die Würze :)
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. :D
0

#5 Mitglied ist offline   Heavenslord 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 11. März 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 07. Mai 2008 - 10:53

Beitrag anzeigenZitat (Witi: 07.05.2008, 11:45)

In der Kürze liegt die Würze :)
jTextArea1.setText(jTextArea1.getText().replace("x", "y"));


Geht das auch wenn ich mehr als nur einen Teil austauschen will? o.O

Grüße
0

#6 Mitglied ist offline   G.I.Joe 

  • Gruppe: aktive Mitglieder
  • Beiträge: 978
  • Beigetreten: 19. September 04
  • Reputation: 0

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
Eingefügtes Bild Eingefügtes Bild
0

#7 Mitglied ist offline   Heavenslord 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 11. März 08
  • Reputation: 0
  • Geschlecht:Männlich

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^^

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

0

#8 Mitglied ist offline   G.I.Joe 

  • Gruppe: aktive Mitglieder
  • Beiträge: 978
  • Beigetreten: 19. September 04
  • Reputation: 0

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):
	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

Eingefügtes Bild Eingefügtes Bild
0

#9 Mitglied ist offline   Heavenslord 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 11. März 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 07. Mai 2008 - 21:35

str_text = str_text.replace("M", "/\/\");


kann mir hier jemand helfen? xD
0

#10 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

geschrieben 07. Mai 2008 - 21:47

das "\" ist ne escape sequenz. wenn du ein \ haben willst, musst du \\ eingeben.
0

#11 Mitglied ist offline   Heavenslord 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 11. März 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 07. Mai 2008 - 21:49

Bei \\ bekomme ich dann also nur \ raus?

Edit: Habe es getestet xD funktioniert einwandfrei^^ Vielen Dank =)

Dieser Beitrag wurde von Heavenslord bearbeitet: 07. Mai 2008 - 21:54

0

#12 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

geschrieben 07. Mai 2008 - 21:50

jo. das gleiche ist, wenn du beispielsweise ein " haben willst, dann klemmste auch ein \" davor und bekommst ein ".
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0