Ersetzen von Buchstaben in einer readLine

Status
Nicht offen für weitere Antworten.

Schandro

Top Contributor
Hallo,

ich bin noch gaanz am Anfang von Java und wollte folgendes "Programm", das man einfach nur in DOS ausführt, machen:

Der Benutzer gibt einen Namen ein, z.b. Hans Peter

das Programm ersetzt bei diesen Namen folgendes:
a, j, s, durch eine 1
b, k, t, durch eine 2
c, l, u, durch eine 3
d, m,v , durch eine 4
e, n, w, durch eine 5
f, o, x, durch eine 6
g, p, y, durch eine 7
h, q, z, durch eine 8
i, r, durch eine 9
Und gibt dadurch folgendes aus:

8151 75259

Ich hoffe ihr könnt mir helfen, ich habe nämlich keine Ahnung wie ich das machen könnte.
 

P3AC3MAK3R

Top Contributor
String.replace sollte Dir weiterhelfen:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#replace(char, char)
 

Schandro

Top Contributor
Danke P3AC3MAK3R, das ist denke ich mal genau das was ich gesucht habe. Hab mal gleich versucht es zu benutzen, nur kommt bei dem folgenden Code diese Fehlermeldung:
------
r5.java:14: int cannot be dereferenced
a.replace('a'; '1');
^
1 Error


Code:
import java.io.*;

public class r5
{
public static void main(String[] args)
throws IOException
{
char a;
BufferedReader din = new BufferedReader(
new InputStreamReader(System.in));

System.out.println("Bitte Name eingeben: ");
a = Integer.parseInt(din.readLine());
a.replace('a', '1');
System.out.println(a);
}
}

Ich hab es erstmal nur mit einem ersetzen gemacht, der Rest kommt erst wenn das hier funktioniert.

Ich hoffe mal bei der Replace-Funktion kann man auch Variablen verändern und nicht nur das, was man mit " " davor schreibt.
 

java666

Aktives Mitglied
Hallo,

ich hab selber vor einiger Zeit so etwas in der richtung gemacht.

Code:
import java.util.*;

/**
 *
 * @author martin
 */
public class Codieren 
{
    public static void main(String [] args)
    {
        Scanner eingabe=new Scanner(System.in);        
        String name;
        
        name=eingabe.nextLine();
        
        name=name.replace('a', '1');
        name=name.replace('j', '1');
        name=name.replace('s', '1');        
        name=name.replace('A', '1');
        name=name.replace('J', '1');
        name=name.replace('S', '1');
        
        System.out.println(name);
        
    }
   
    
}

vielleicht hat noch jemand einen bessere lösung aber so würde es gehen ist aber viel tip arbeit!!
 

Schandro

Top Contributor
:D Vielen Dank java666
Hab gerade alles eingegeben, klappt super.

Ich hab noch eine Frage:

Könnte man aus dieser Zahlenfolge noch zusätzlich die Quersumme solange errechnen, bis diese Quersumme einstellig ist, und diese danach auch ausgeben?
 

java666

Aktives Mitglied
Ich denk schon das es geht! Aber nur leider kann ich mit Quersumme nicht viel anfangen! Wenn du mir sagst wie des gerechnet wird kann bestimmt was draus machen

Des mit der Quersumme hab ich jetzt doch raus! Muss mal schauen ob da was geht! Bin selber noch blutiger anfänger!

Vom grund gedanken her ist es recht einfach aber leider für mich noch nicht so leicht:

Du musst den String zerlegen, und irgendwie kann man bestimmt auch sagen das er erst eine ausgabe machen darf wenn es nur noch 1stelle ist!

Aber leider muss da jetzt jemand anderes her der sich mit sowas auskennt oder eine kleine hilfe stellung gibt!
 

jPat

Bekanntes Mitglied
Quersummenfolgen braucht man nicht in einer schleife berechnen, da diese immer mit modulo 9 berechnet werden können :)

123456 mod 9 = 3

Außnahme: xx mod 9 = 0 -> muß durch 9 ersetzt werden!

und natürlich einstellige zahlen....
 

jPat

Bekanntes Mitglied
Du soltest deine Methode, die Zeichen als zahlen darzustellen evtl mit replaceAll("a","1"); verfeinern, da ansonsten nur das erste vorkommen des Zeichens ersetzt wird.

zur Quersumme:
Code:
if (name.length()>1){
zahl = Integer.parseInt(name);
int qs = zahl%9;
if (qs==0) qs=9;
}

[edit] so, jetzt sollet es gehen. [/edit]
 

Schandro

Top Contributor
Ich hab deinen Code dazugeschrieben, aber es kommen jetzt diese Fehler :

(Ich weiss leider nicht wie ich den aus DOS rauskopieren kann)

Es werden übrigens alle Zeichen ersetzt, nicht nur die jeweils ersten. :D

Edit:

Ich hab den Code mal ein kleines bisschen umgeschrieben und jetzt sind es nurnoch 2 Fehler ^^

if (name.length>1){
int zahl = Integer.parseInt(name).intValue();
int qs = zahl%9;
if (qs==0) qs=9;

hoffentlich hab ich nichts verschlimmbessert

Die beiden Sachen gehen aber immer noch nicht:

int cannot be dereferenced
int zahl = integer.parseInt(name).intValue();

cannot find symbol
symbol : variable length
location: class java.lang.String
if (name.length>1){


Nochmal Edit:


Bei
if (name.length()>1){
hat nur das () gefehlt, d.h. als Error kommt beim complimieren nurnoch :

int cannot be dereferenced
int zahl = integer.parseInt(name).intValue();
 

Wildcard

Top Contributor
Aus DOS zu kopieren dürfte tatsächlich schwierig werden, du hast nämlich kein DOS.
name.length()
 

jPat

Bekanntes Mitglied
sorry,
int zahl = Integer.parseInt(name);

zum Dos-Fenster, also cmd:

in der oberen Ecke findest du ein Menü, dort auf Bearbeiten->markieren, dann Bereich auswählen, dann wieder Bearbeiten->Kopieren ..... und paste ;)
 

Saxony

Top Contributor
Schandro hat gesagt.:
[...](Ich weiss leider nicht wie ich den aus DOS rauskopieren kann)[...]

Hiho,

wenn du von der DOS-Konsole sprichst ist das recht einfach.

1. Rechtklick auf die Konsole und aus dem Popup markieren auswählen.
Schade das hier nicht Shift+F10 funktioniert, welches zum Beispiel beim Explorer die Tastenkombination für Rechtsklick ist. Fragt jetzt nicht wieviel Langeweile man haben muss um das raus zu finden. :)
Aber bedient mal zwei Wochen Windows ohne Maus...

2. den Text markieren - Vorsicht der markiert nicht nach Textfluß sondern macht einfach ein Rectangle

3. rechtsklick auf den markierten Text oder enter - die Markierung verschwindet und man hat den so "umschlossenen" Text im clipboard.

bye Saxony
 

Schandro

Top Contributor
Hallo,

Vielen Dank schonmal an alle, die mir bis jetzt geholfen haben :D

Das Problem ist jetzt nurnoch das bei folgenden Code :

Code:
import java.util.*; 
public class z1
{ 
  public static void main(String [] args) 
  { 
Scanner eingabe=new Scanner(System.in);        
System.out.println("Bitte Name eingeben: ");
        String name; 
        name=eingabe.nextLine(); 
       
  name=name.replace('a', '1'); 
  name=name.replace('j', '1'); 
 usw. usw.usw.usw.usw.usw.usw.usw.usw.usw.usw.
  name=name.replace('r', '9'); 
  name=name.replace('I', '9');        
  name=name.replace('R', '9');   

           System.out.println(" ");    
        System.out.println(name); 

if (name.length()>1){ 
int zahl = Integer.parseInt(name).intValue();
int qs = zahl%9; 
if (qs==0) qs=9; 
} 
 }  
}

Dieses Problem kommt:

z1.java:68: int cannot be dereferenced
int zahl = Integer.parseInt(name).intValue();
.........................................^.........................
1 error

(Ach ist das schön das einfach rauszukopieren :D ^^)

Hoffe ihr könnt mir da nochmals weiterhelfen.
 

java666

Aktives Mitglied
Was genau soll es den jetzt machen dein Programm willst du ein Ausgabe von der Quersumme oder was willst du mit der Quersumme anstellen?
 

java666

Aktives Mitglied
so sieht des bei mir aus

Code:
name=name.replace('S', '1'); 
        
        if (name.length()>1)
        {
            long zahl = Long.parseLong(name);
            long qs = zahl%9;
            
            if (qs==0) qs=9; 
            {
                System.out.println(qs);
            }           
        }
    }        
}

Es funzt auch alles wunderbar (ich habe nur long genommen damit ich etwas testen konnte kannst gerne int bei dir lassen)
 

Leroy42

Top Contributor
Die statische Methode parseInt der Klasse Integer liefert
dir doch schon ein int (Ein Blick in die API hätte genügt).
Also einfach
Code:
int zahl = Integer.parseInt(name);
schreiben.
 

Saxony

Top Contributor
Hiho,

ich habe irgendwie noch nicht verstanden was das werden soll.

Man gibt einen Namen ein und die Buchstaben werden in Zahlen umgewandelt und daraus dann die Quersumme berechnet.

Tja und was sagt uns dann die Quersumme des Namen?

bye Saxony
 

Schandro

Top Contributor
Das klappt zwar wunderbar, nur leider akzeptiert es dann keine Leerzeichen.
Fehler bei z.b. Hans Peter:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1
14 16"
at java.lang.NumberFormatException.forInputString(NumberFormatException.
java:48)
at java.lang.Long.parseLong(Long.java:412)
at java.lang.Long.parseLong(Long.java:461)
at z16.main(z16.java:71)

Ist jetzt für mein Programm aber nicht schlimm, da der Benutzer eh nur einzelne Namen (also nicht Hans Peter auf einmal, sondern erst Hans und danach Peter) eingeben wir, da sonst die Quersumme der verschiedenen Namen zusammengerechnet werden würde.

Ich hab aber noch ein hoffentlich letztes Problem:
Das Programm soll solange laufen, bis der Benutzer "quit" anstatt eines Namen eingibt (Hoffe mal es gibt keinen Menschen mit Namen quit^^). Hab jetzt eine do-Schleife dazugeschrieben, und das Programm wiederholt sich jetzt auch. Aber die quit "Funktion" funktioniert nicht, d.h er behandelt quit wie einen normalen Namen anstattt es zu beenden. Die einzige Möglichkeit es zu beenden ist es, ein Name mit Leerzeichen in der mitte einzugeben (Was für eine Ironie!!). Hoffe ihr könnt mir (mal wieder) weiterhelfen:

Code:
import java.util.*; 
public class ne5
{ 
  public static void main(String [] args) 
  { 
Scanner eingabe=new Scanner(System.in); 
String beenden;
String quit;
quit = "quit";
do
{       System.out.println("Bitte Name eingeben: ");
        String name; 
        name=eingabe.nextLine(); 

beenden = name;

        
  name=name.replace('a', '1'); 
  name=name.replace('j', '1'); 
usw.
  name=name.replace('I', '9');        
  name=name.replace('R', '9');   

           System.out.println(" ");    
        System.out.println(name); 
long qs;
if (name.length()<2)
qs = 0;
else
{ 
long zahl = Long.parseLong(name);
qs = zahl%9; 
if (qs==0) qs=9; 
}
System.out.println("Quersumme: "+qs);
System.out.println(" ");
}while (beenden != quit);    
 }  
}
Es haben sich nur die Zeilen 7,8,9,10,11,15 und 37 geändert.

Das Programm selber ist für die Namensnumerologie von Feng Shui gedacht.
 

Leroy42

Top Contributor
Code:
}while (!beenden.equals(quit));
Stringinhalte vergleicht man mit equals
 

Schandro

Top Contributor
Juhuu :D :D

Jetzt geht alles. Vielen Dank

Nur noch eine kleine letzte Frage:

Kann man in Windows ein Icon auf den Desktop oder sonstwo hin machen, dass die DOS-Eingabeaufforderung öffnet und das Java Programm startet?
(Den Start von Java ohne DOS wüsste ich, nur funktioniert System.out.println dann leider nicht...)
 

Saxony

Top Contributor
Hmm aba eigentlich ist das gar nicht die Quersumme im eigentlichen Sinne.
Weil 99 hat als Quersumme 18 und nicht 99 % 9 = 0; qs = 9.
Das ist also die iterierte Quersumme.

bye Saxony
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
X String einzelne Buchstaben ersetzen Java Basics - Anfänger-Themen 4
D ersetzen eines Buchstaben durch mehrere in String Java Basics - Anfänger-Themen 8
W Gleichzeitiges ersetzen mehrerer Strings Java Basics - Anfänger-Themen 7
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
A 1 Leerzeichen durch zwei Leerzeichen ersetzen Java Basics - Anfänger-Themen 4
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
obiwanke Ziffern durch ASCII Character ersetzen Java Basics - Anfänger-Themen 8
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
W Best Practice Tabulatoren verschiedener Länge ersetzen Java Basics - Anfänger-Themen 8
I String ersetzen, der Inhalt enthält Java Basics - Anfänger-Themen 4
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
N for Schleife durch Rekursion ersetzen Java Basics - Anfänger-Themen 6
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
V Erste Schritte Vokale im Satz ersetzen Java Basics - Anfänger-Themen 20
S Ersetzen eines Asterix in einem String Java Basics - Anfänger-Themen 8
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
S Wort suchen und ersetzen in einer Datei Java Basics - Anfänger-Themen 6
W Teilstring durch Teilstring mittels StringBuilder ersetzen Java Basics - Anfänger-Themen 7
J Kopierte Datei soll alte ersetzen. Java Basics - Anfänger-Themen 6
K BufferedReader für IOTools ersetzen? Java Basics - Anfänger-Themen 17
Jinnai4 Strings ersetzen Java Basics - Anfänger-Themen 9
G Wert in Textdatei ersetzen? Java Basics - Anfänger-Themen 2
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
Alex/89 String in einer txt ersetzen Java Basics - Anfänger-Themen 15
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
E RTF/DOC(x) textteile ersetzen/verändern Java Basics - Anfänger-Themen 0
K ArrayList durch ArrayList ersetzen Java Basics - Anfänger-Themen 5
T Strings ersetzen mit \ Java Basics - Anfänger-Themen 10
A Suchen und ersetzen Java Basics - Anfänger-Themen 13
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
A Text mit "Scanner" eingeben und Umlaute ersetzen Java Basics - Anfänger-Themen 7
hello_autumn Strings ersetzen... Java Basics - Anfänger-Themen 10
S Wort in Text suchen und ersetzen Java Basics - Anfänger-Themen 3
G Ersetzen eines confirm dialogs/ synchronisieren von methoden Java Basics - Anfänger-Themen 6
T Best Practice JUnit: Wie Klassen durch Stubs/Mockups ersetzen Java Basics - Anfänger-Themen 7
J Ersetzen Java Basics - Anfänger-Themen 4
Ananaskirsche Input/Output Platzhalter durch String in yml-Datein ersetzen Java Basics - Anfänger-Themen 5
AssELAss ß durch ss oder SS ersetzen Java Basics - Anfänger-Themen 10
J Input/Output String Suchen und Ersetzen Java Basics - Anfänger-Themen 8
M nach Typenkonvertierung Leerzeichen ersetzen Java Basics - Anfänger-Themen 2
G Line Separator in ArrayList durch ";" ersetzen Java Basics - Anfänger-Themen 4
L Wort in String ersetzen Java Basics - Anfänger-Themen 11
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
F Hexfolge in Byte Array ersetzen Java Basics - Anfänger-Themen 8
J Vokale ersetzen Java Basics - Anfänger-Themen 7
G GUI Label Werte ersetzen Java Basics - Anfänger-Themen 25
G String ersetzen Java Basics - Anfänger-Themen 5
G GUI JLabel ersetzen Java Basics - Anfänger-Themen 3
C Variablen Variablen ersetzen Java Basics - Anfänger-Themen 7
Kenan89 Bestimmte Zeile in txt-Datei ersetzen Java Basics - Anfänger-Themen 4
D Slash durch zwei Backslash ersetzen Java Basics - Anfänger-Themen 11
S Button durch ImageIcon ersetzen Java Basics - Anfänger-Themen 9
C Elemente im StringBuffer ersetzen Java Basics - Anfänger-Themen 19
S im StringBuilder Zeichenketten ersetzen Java Basics - Anfänger-Themen 6
A String ersetzen Java Basics - Anfänger-Themen 6
B Char in String ersetzen Java Basics - Anfänger-Themen 15
J Alle Vorkommen eines chars in einem Array durch einen anderen char ersetzen Java Basics - Anfänger-Themen 10
I Ersetzen eines Objektes in einer Liste? Java Basics - Anfänger-Themen 5
A Datentypen Sonderzeichen / Strings ersetzen Java Basics - Anfänger-Themen 3
A Vokale im String ersetzen Java Basics - Anfänger-Themen 12
S Objekt durch Schnittstelle ersetzen Java Basics - Anfänger-Themen 2
F Substring mittels RegEx ermitteln/ersetzen? Java Basics - Anfänger-Themen 2
K Ersetzen von Teilstrings in ArrayList von Strings Java Basics - Anfänger-Themen 11
S Datentypen In mehreren Dateien Strings ersetzen Java Basics - Anfänger-Themen 14
A Doppelter Backslash durch einen einfachen Backslash ersetzen Java Basics - Anfänger-Themen 6
T Doppelte Anführungszeichen ersetzen?? Java Basics - Anfänger-Themen 4
B Vector in Table ersetzen Java Basics - Anfänger-Themen 4
J Große animierte Gif preloaden und solange mit einer nicht animierten ersetzen Java Basics - Anfänger-Themen 5
Daniel_L RegEx - Ersetzen ausschließen? Java Basics - Anfänger-Themen 6
S .txt einlesen->Zeilen ersetzen->neu.txt speichern Java Basics - Anfänger-Themen 13
S Backslash ersetzen. Java Basics - Anfänger-Themen 5
D mehrere Leerzeichen durch 1 Leerzeichen ersetzen Java Basics - Anfänger-Themen 3
M Panel ersetzen funktioniert nicht Java Basics - Anfänger-Themen 2
D Datentypen String Inhalte ersetzen Java Basics - Anfänger-Themen 8
N sich wiederholende arrayfelder ersetzen for-schleife Java Basics - Anfänger-Themen 9
C Variable Zeichenkette innerhalb einer Schleife ersetzen Java Basics - Anfänger-Themen 4
K Ersetzen von \" Zeichenfolge Java Basics - Anfänger-Themen 8
A Array einfügen, ersetzen und löschen Java Basics - Anfänger-Themen 1
G Enter-Zeichen aus String ersetzen Java Basics - Anfänger-Themen 5
J 4. vorkommende Zeichen ersetzen. Java Basics - Anfänger-Themen 7
V Bilder auf einer Seite markieren und ersetzen Java Basics - Anfänger-Themen 2
D Ascii-Code ersetzen mit Umlauten Java Basics - Anfänger-Themen 6
K Regex alle "<br><br>*" ersetzen Java Basics - Anfänger-Themen 2
G String Suchen ersetzen replace_all() Java Basics - Anfänger-Themen 6
W Zeichen ersetzen im InputStream Java Basics - Anfänger-Themen 3
C einen Link durch einen anderen Lunk ersetzen Java Basics - Anfänger-Themen 8
G Zeile in Textdatei ersetzen Java Basics - Anfänger-Themen 9
O Zeichen ersetzen Java Basics - Anfänger-Themen 3
F regex bei replaceAll und backslash ersetzen geht nicht. Java Basics - Anfänger-Themen 1
K String ersetzen Java Basics - Anfänger-Themen 10
C Rekursion durch Schleife ersetzen Java Basics - Anfänger-Themen 9
G Ersetzen von Zeichen "/" "" Java Basics - Anfänger-Themen 3
G Zeilenumbrüche in String durch <br> ersetzen? Java Basics - Anfänger-Themen 3
H String und HEX-Werte ersetzen Java Basics - Anfänger-Themen 8
J Zeichen ersetzen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben