replace(char, char) funktioniert nicht

it-girl

Aktives Mitglied
Hallo zusammen,

habe ein wahrscheinlich ganz banales Problem.
Ich lese einen String von der Console ein und speichere ihn in String wort. Dann durchlaufe ich diesen String und erstelle für jeden vorhandenen Buchstaben "_ ". Also wenn ich "hallo" schreibe, kommt _ _ _ _ _ raus. So, nun möchte ich aber, wenn ein eingelesener Buchstabe in wort vorkommt, dass er an der gleichen Stelle in den Unterstrichen ersetzt wird.
Als Beispiel: Ich schreibe "hallo". Es wird "_ _ _ _ _ "daraus generiert. Jetzt gebe ich ein "a" ein und es soll rauskommen "_ a _ _ _ ".

Eigentlich geht das doch so:
Java:
String alt = "";
String wort = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
	wort= br.readLine();
} catch (IOException e) {
	System.err.println("IO-Fehler!");
}
for (int i = 0; i < wort.length(); i++) {
	alt += "_ ";
}
char buchstabe = 0;
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
buchstabe = (char) br2.read();
for (int i = 0; i < wort.length(); i++) {
	if (wort.charAt(i) == buchstabe) {
		alt.replace(alt.charAt(i+1), buchstabe);
	}
}
Aber hier wird nix ersetzt. Was mache ich falsch?

Danke schon mal für eure Antworten.

LG it-girl
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Darüber hinaus hast du irgendwie mal
Code:
wort
mal
Code:
gesuchtesWort
stehen. Wie kommt dieser
Code:
i+1
Index zur Stande? Was denkst du passiert da? Du ersetzt ja in dem Wort "_ _ _ _ _" den Unterstrich durch einen Buchstaben... ALLE Unterstriche.
 

it-girl

Aktives Mitglied
Darüber hinaus hast du irgendwie mal
Code:
wort
mal
Code:
gesuchtesWort
stehen.
Danke für den Hinweis, sollte wort heißen :) Habs geändert.

Wie kommt dieser
Code:
i+1
Index zur Stande?
i+1 deshalb, weil in alt ja steht "_ _ _ _ _ ", also immer Unterstrich Leerzeichen. Und damit nur die Unterstriche, nicht aber die Leerzeichen ersetzt werden ist das +1 da.

Was denkst du passiert da? Du ersetzt ja in dem Wort "_ _ _ _ _" den Unterstrich durch einen Buchstaben... ALLE Unterstriche.
Ja und genau das will ich vermeiden, nur weiß ich grad nicht wie... Könntest du mir das bitte sagen? Ich brüte schon zu lang darüber als dass ich meine eigenen Fehler noch bemerken würde :(
 

r.w.

Bekanntes Mitglied
Ich denke, hier würde es mehr Sinn machen, mit dem StringBuilder zu arbeiten.
Und da speziell mit der Methode .setCharAt(int index, char c).

Das mit dem Index+1 dürfte meiner Meinung nach so nicht passen.
Da würde ich noch mal nachrechnen. ;-)

VG ROlf
 

it-girl

Aktives Mitglied
Ich denke, hier würde es mehr Sinn machen, mit dem StringBuilder zu arbeiten.
Und da speziell mit der Methode .setCharAt(int index, char c).
Kannst du mir genau sagen, wie ich das machen muss? Hab das schonmal versucht, aber dann passt es wieder an anderen Stellen nicht. Vor allem beim Einlesen von der Console hab ich dann Probleme, denn ich lese ja keine Strings, sondern chars ein.

Das mit dem Index+1 dürfte meiner Meinung nach so nicht passen.
Da würde ich noch mal nachrechnen. ;-)
Doch das passt, das habe ich schon berechnet :)
 

Crian

Top Contributor
Code:
_ _ _ _ _
012345678

nun möchtest du den Index 2 austauschen:

Code:
_ _ a _ _
012345678

2+1 wäre 3. Das a steht aber an Position 2*i.
 

r.w.

Bekanntes Mitglied
Kannst du mir genau sagen, wie ich das machen muss? Hab das schonmal versucht, aber dann passt es wieder an anderen Stellen nicht. Vor allem beim Einlesen von der Console hab ich dann Probleme, denn ich lese ja keine Strings, sondern chars ein.


Doch das passt, das habe ich schon berechnet :)

Nee, das passt nicht (siehe unten)! ;-)


Ich hab mal an Hand Deines Codes dieses Beispiel mit dem StringBuilder erstellt.
Vielleicht noch nicht optimal, aber ich hab zum besseren Vergleich versucht, die
Änderungen so gering wie möglich zu halten.
Java:
// ...

   public static void main(String[] args) {
      StringBuilder alt = new StringBuilder("");
      String wort = "";

      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      try {

         wort= br.readLine();
         for (int i = 0; i < wort.length(); i++) {
            alt.append("_ ");
         }

         char buchstabe = 0;
         BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
         buchstabe = (char) br2.read();

         for (int i = 0; i < wort.length(); i++) {
            if (wort.charAt(i) == buchstabe) {
               alt.setCharAt(i*2, buchstabe);
            }
         }
         System.out.println("Wort: " + wort);
         System.out.println("Alt.: " + alt.toString());


      } catch (IOException e) {
          System.err.println("IO-Fehler!");
      }
   }

// ...

Um mehrere Zeichen hintereinander eingeben zu können
brauchst Du natürlich noch eine Schleife. ;-)


Ich hoffe, das hilft Dir weiter.

VG ROlf
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
monsterherz Replace mit Scan Java Basics - Anfänger-Themen 20
monsterherz replace Java Basics - Anfänger-Themen 12
GAZ String replace() Elemente tauschen Java Basics - Anfänger-Themen 13
J Replace mit Hilfe von ArrayLists Java Basics - Anfänger-Themen 6
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
M Verschlüsselung mit replace() Java Basics - Anfänger-Themen 35
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
D kann man vor dem CSVRecord, replace Anweisung anwenden ? Java Basics - Anfänger-Themen 2
M replace Methode für Buchstaben Java Basics - Anfänger-Themen 29
J .replace mit Arraylisten Java Basics - Anfänger-Themen 4
Ananaskirsche Variablen Replace funktioniert nicht Java Basics - Anfänger-Themen 7
B Regular Expression bei replace Java Basics - Anfänger-Themen 11
M Problem mit Array und replace Java Basics - Anfänger-Themen 3
P Replace zählen Java Basics - Anfänger-Themen 4
P replace[Frage] Java Basics - Anfänger-Themen 2
V String replace ? Java Basics - Anfänger-Themen 6
J Erste Schritte replace von minus Zeichen wird nicht gemacht Java Basics - Anfänger-Themen 7
S string.replace funktioniert nicht Java Basics - Anfänger-Themen 10
U String.replace mit Umlauten Java Basics - Anfänger-Themen 14
N Methoden mehrere replace hintereinander geht nicht ? Java Basics - Anfänger-Themen 2
R String Replace für JUnit Java Basics - Anfänger-Themen 19
M Replace mit fromIndex Java Basics - Anfänger-Themen 6
V Nochmal Hilfe - Replace Methode Java Basics - Anfänger-Themen 2
B Problem mit replace() Java Basics - Anfänger-Themen 4
0 String split und replace geht nicht Java Basics - Anfänger-Themen 17
A mehrere replace in einem string Java Basics - Anfänger-Themen 3
H replace funktioniert nicht Java Basics - Anfänger-Themen 4
S String filtern mit replace -> Problem Java Basics - Anfänger-Themen 6
T Regulärer Ausruck mit replace Java Basics - Anfänger-Themen 3
M String.replace Java Basics - Anfänger-Themen 2
M replace html string Java Basics - Anfänger-Themen 3
G String.replace Java Basics - Anfänger-Themen 3
J Find and replace Java Basics - Anfänger-Themen 3
D Strings : XY.replace(); ! Java Basics - Anfänger-Themen 6
D String mit replace bearbeiten Java Basics - Anfänger-Themen 2
G string.replace und charset Java Basics - Anfänger-Themen 2
D Probleme mit der String Methode replace() Java Basics - Anfänger-Themen 4
N String.replace brauch mal Hilfe Java Basics - Anfänger-Themen 2
B Programmcode von replace, split, u.s.w. Java Basics - Anfänger-Themen 3
F Schon wieder replace Java Basics - Anfänger-Themen 7
W Replace - geht das auch kürzer? Java Basics - Anfänger-Themen 4
N replace? Java Basics - Anfänger-Themen 5
R String replace nicht verwenden.alternative gesucht Java Basics - Anfänger-Themen 5
P Replace java 1.1 Java Basics - Anfänger-Themen 4
D replace() Methode in JSP Java Basics - Anfänger-Themen 2
D replace-funktion Java Basics - Anfänger-Themen 2
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
D 2D Char Array into String Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
Tommilee Char ausgeben Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
P9cman Char Index rekursiv finden Java Basics - Anfänger-Themen 4
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
W char über die Konsole? Java Basics - Anfänger-Themen 7
C char c Java Basics - Anfänger-Themen 13
D String und char in String speichern Java Basics - Anfänger-Themen 5
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
P Methoden Namen trennen mit .substring(), char.At(), .lenght() Java Basics - Anfänger-Themen 8
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
A Datentyp char Java Basics - Anfänger-Themen 27
A Char und modulo Java Basics - Anfänger-Themen 8
A char array wird überschrieben Java Basics - Anfänger-Themen 6
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
D Datentypen Char deklaration Java Basics - Anfänger-Themen 4
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
I char Array to String Java Basics - Anfänger-Themen 3
C (char) Array einlesen Java Basics - Anfänger-Themen 8
J Java char.at() Probelm Java Basics - Anfänger-Themen 12
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
H char-Array Java Basics - Anfänger-Themen 22
M Die länge von char Java Basics - Anfänger-Themen 6
T Methoden char wird nicht ausgegeben Java Basics - Anfänger-Themen 3
R Fehler bei ASCII Char zu Int Umwandlung Java Basics - Anfänger-Themen 2
C Methoden String in char Array Java Basics - Anfänger-Themen 3
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
kokojamboo92 char mehrfach ausgeben.. Java Basics - Anfänger-Themen 2
T Erste Schritte Char 'Anführungszeichen' Tastaturkürzel Java Basics - Anfänger-Themen 1
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
E Wie wird in Java ein Char-Array terminiert ? Java Basics - Anfänger-Themen 15
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
C Compiler-Fehler from int to char Java Basics - Anfänger-Themen 2
A Methoden Char-Arrays auf aufeinanderfolgende Elemente vergleichen! Java Basics - Anfänger-Themen 7
T Object zu Char zu String Java Basics - Anfänger-Themen 6
W Char Array bearbeiten Java Basics - Anfänger-Themen 6
A Char-Array erstellen Java Basics - Anfänger-Themen 35
D Hilfe bei int wert von char Java Basics - Anfänger-Themen 7
W String auf char[] umwandeln Java Basics - Anfänger-Themen 3
Z char Array unbekanntes Zeichen selbstständig anlegen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben