Replace mit Scan

monsterherz

Aktives Mitglied
Halli, ich brauch mal wieder Eure Hilfe. Ich will in einem String der eingeben wird bestimmte Zeichen ersetzen. Leider meckert er entweder das der int und String nicht kombiniert werden dürfen oder wenn ich deshalb die Scan Einlesung auf String änder funktioniert das auch nicht. Wo ist mein Denkfehler?
 

Anhänge

  • Screenshot from 2023-01-29 15-29-08.png
    Screenshot from 2023-01-29 15-29-08.png
    61,6 KB · Aufrufe: 1

monsterherz

Aktives Mitglied
Java:
import java.util.Scanner;
public class Ersatz
{
        public static void main(String args[])
        {
                Scanner neuer_scan=new Scanner(System.in);
                System.out.println("Bitte den Text eingeben");
                Int eingabe=neuer_scan.nextInt();
                String neuer_text=eingabe.replaceAll("sc","fM");
                System.out.println(neuer_text);
        }
}
 

monsterherz

Aktives Mitglied
String groß - Integer klein? Muss frau das verstehen ? ;-)

Aber dann meckert er so:


Java:
michi@localhost ~/java $ javac Ersatz.java
Ersatz.java:9: error: int cannot be dereferenced
        String neuer_text=eingabe.replaceAll("sc","fM");
                                 ^
1 error

Eben der Misch Masch aus int und Str wie ich das interpretiere ...
 

KonradN

Super-Moderator
Mitarbeiter
Es gibt paar Grundtypen in Java. Diese werden klein geschrieben: int, double, float, long, ....

Dann gibt es Klassen, diese werden Groß geschrieben. Also String, Scanner, ...

Und Methoden lassen sich nur auf Instanzen aufrufen, also auf Objekten von Klassen. Daher kannst Du auf int keine Methode aufrufen.

Macht auch kein Sinn, denn ein int ist ja eine Zahl. In einer Zahl ist kein sc und kann auch kein fM drin sein!
 

monsterherz

Aktives Mitglied
ok dank dir. Dann mal so gefragt: wie kann ich einen mittels Scan eingelesenen Code als String bearbeiten also das replace verwenden?
 

KonradN

Super-Moderator
Mitarbeiter
Wenn Du einen String einlesen willst, dann solltest du das auch machen.

Dazu könnte man sich die Klasse Scanner einmal näher ansehen:

Da finden sich dann Methoden wie next und nextLine.
 

monsterherz

Aktives Mitglied
ok, Frau übt und studiert noch etwas. Danke erstmal
ok, Session closed :)

Java:
import java.util.Scanner;
public class String_Scanner {
  public static void main(String[] args) {
    // String input with the Java Scanner
    System.out.println("Bitte den Text einfügen");
    Scanner stringScanner = new Scanner(System.in);
    String daten = stringScanner.next();
    String uebersetzung=daten.replaceAll("sc","fM");
        System.out.println(uebersetzung);
  }
}
 

monsterherz

Aktives Mitglied
Ich will mehrere Strings ersetzen. Unter Python kann man einfach mehrfach replace verwenden. Unter Java habe ich noch Nix gefunden. Wie kann ich mehrere verschiedene Strings ersetzen?

Also nicht replaceAll sondern replaceAll("sc","fM") UND noch weitere Ersetzungen ("dec","Abn)
 

KonradN

Super-Moderator
Mitarbeiter
Hast Du Dir die Dokumentation von String einmal angesehen? Was macht denn das replaceAll?

Da der veränderte String zurück gegeben wird, kannst Du in Java ebenfalls einfach erneut repleaceAll aufrufen.
 

monsterherz

Aktives Mitglied
Java:
undefinedimport java.util.Scanner;

public class Ersatz

{

        public static void main(String args[])

        {

                Scanner stringScanner =new Scanner(System.in);

                System.out.println("Bitte den Text eingeben");

                //so kenn ich es von Python:

                String neuer_text=stringScanner.replaceAll("sc","fM").replaceAll("inc","Zun");

                //Aber auch etwas umständlicher funktioniert es nicht ... Please help :-(

                String neuer_text1=stringScanner.replaceAll("dec","Abn");

                System.out.println(neuer_text1);

        }

}
 

KonradN

Super-Moderator
Mitarbeiter
überlege Dir genau, was du machen willst:
  • erst soll ein Text eingegeben werden. Dazu hast Du Dir den Scanner angesehen, oder? Was für Methoden kommen da in Frage?
  • beim eingegebenen String soll dann etwas ersetzt werden ….
 

Neumi5694

Top Contributor
Wichtiger Hinweis: Ein String kann nicht geändert werden Wenn du Replace oder ReplaceAll aufrufst, dann wird ein neuer String als Ergebnis geliefert, das Original bleibt aber unangetastet.
Und jetzt schau dir mal in deinem Code an, was genau du mit dem eingelesenen Text machst. Welchen Text verwendet du beim zweiten Aufruf?

edit: Nvm, hab gerade gesehen, dass du versucht hast, den Scanner zu ändern und nicht den eingelesenen String.

Wie schon so oft gesagt: Stift und Papier (oder Notepad++) zum Mitschreiben, was nach welchem Schritt in welcher Variable steht.
 

temi

Top Contributor
Hier noch mal die Links zur Doku. Versuch unbedingt damit zu arbeiten, das ist ein wichtiges Handwerkszeug, mit dem du umgehen können musst.

https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#method_summary

Du möchtest mittels Scanner einen String von der Konsole einlesen?

Schau dir die Methoden an, die als Rückgabetyp "String" liefern. Schau dir die Unterschiede (in der Methodenbeschreibung) der einzelnen Methode an.

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#method_summary

Genauso mit String. Schau dir die Methoden an, die einen String zurückliefern und deren Beschreibung, was sie machen.

Zu deiner Frage
Unter Python kann man einfach mehrfach replace verwenden. Unter Java habe ich noch Nix gefunden.
Wenn eine Methode einen String als Rückgabewert liefert, dann stehen für diesen Rückgabewert wiederum alle Methoden zur Verfügung, die String dir anbietet.
 
Zuletzt bearbeitet:

monsterherz

Aktives Mitglied
ok, ohne Scan hab ich es schonmal geschafft


Java:
public class Ersatz_ohne_Scan
{
        public static void main(String args[])
        {
    String texteingabe="3 sc 4 inc";
        String neuer_Text=texteingabe.replace("sc", "fM");
        String neuer_Text1=neuer_Text.replace("inc","Zun");
        System.out.println("Die Übersetzung ist" + neuer_Text1);
        }
}
 

temi

Top Contributor
Das lässt sich auch verkürzt schreiben:
Java:
String neuer_Text = texteingabe.replace("sc", "fM").replace("inc","Zun");
Oder auch anders getrennt:
Java:
String neuer_Text = texteingabe
    .replace("sc", "fM")
    .replace("inc","Zun");

Das erste replace() liefert als Ergebnis einen String, auf dem du direkt wieder replace() aufrufst. Dessen Rückgabewert wird dann in der Variablen gespeichert.

Ob diese Schreibweise übersichtlicher ist, musst du im Einzelfall prüfen.
 

monsterherz

Aktives Mitglied
Achso: genau so kenne ich es auch von Python. Nach der Lösung hab ich gesucht. :)
Aber da ich replaceAll verwendet habe ging es wahrscheinlich nicht ...
EDIT: nein es lag daran das ich das erste Replace mit ; beendet habe
 

temi

Top Contributor
Achso: genau so kenne ich es auch von Python. Nach der Lösung hab ich gesucht.
Im Prinzip hast du das schon so gemacht. Du hast halt die Zwischenergebnisse noch mal in Variablen gespeichert. Auch replaceAll() liefert als Rückgabetyp einen String und für diesen stehen alle Methoden zur Verfügung, die die Klasse String anbietet.
 
Ä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 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
I replace(char, char) funktioniert nicht Java Basics - Anfänger-Themen 8
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
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
H Kürzere Scan Methode Java Basics - Anfänger-Themen 7
A Double Scan eingrenzen Java Basics - Anfänger-Themen 2
K Frage zu scan nextln Java Basics - Anfänger-Themen 6
P Alternative zu scan.nextLine() Java Basics - Anfänger-Themen 4
R Einzelne Zahlen von der Eingabe (Scan) weiterverarbeiten Java Basics - Anfänger-Themen 3
A scan.nextLine() - Wenn man zu lange nichts macht, soll etwas passieren Java Basics - Anfänger-Themen 3
K scan.nextLine Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben