App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Java -> Ascii Code in Integer umwandeln...
- Ersteller Cybered
- Erstellt am
Cybered
Admiral Special
- Mitglied seit
- 22.09.2002
- Beiträge
- 1.625
- Renomée
- 14
- Standort
- Unimatrix-Zero
- Aktuelle Projekte
- Spin;Seti;QMC
- Lieblingsprojekt
- SETI
- Meine Systeme
- Athlon 64 X2 3800+
- BOINC-Statistiken
Hi,
wollte unter Java eine Tastatureingabe (Zahlen) auslesen und weiterverarbeiten. Allerdings werden die zeichen die ich einlese im Ascii code dargestellt. Wie kann ich jetzt die eingebene Ziffer zB. die 5 auch als 5 weiterverarbeiten
Bis jetzt bin ich so weit ->
int input1 = System.in.read(); //Tastatureingabe lesen
int i = (int)(input1-'0'); // vom erhaltenen Ascci wert, den ascii wert der "0" abziehen
System.out.println(i);
Jetzt bekomme ich schon mal den "richtigen" Wert angezeigt, kann diesen aber nicht in einer zählschleife weiterverarbeiten...und wenn ich zb ein "a" eingebe, funktioniert das ganze auch schon nicht mehr...
Keine Ahnung wie ich weiter vorgehen soll, brauche nur nen kleinen Tip
thx4all
cybered
wollte unter Java eine Tastatureingabe (Zahlen) auslesen und weiterverarbeiten. Allerdings werden die zeichen die ich einlese im Ascii code dargestellt. Wie kann ich jetzt die eingebene Ziffer zB. die 5 auch als 5 weiterverarbeiten
Bis jetzt bin ich so weit ->
int input1 = System.in.read(); //Tastatureingabe lesen
int i = (int)(input1-'0'); // vom erhaltenen Ascci wert, den ascii wert der "0" abziehen
System.out.println(i);
Jetzt bekomme ich schon mal den "richtigen" Wert angezeigt, kann diesen aber nicht in einer zählschleife weiterverarbeiten...und wenn ich zb ein "a" eingebe, funktioniert das ganze auch schon nicht mehr...
Keine Ahnung wie ich weiter vorgehen soll, brauche nur nen kleinen Tip
thx4all
cybered
OBrian
Moderation MBDB, ,
- Mitglied seit
- 16.10.2000
- Beiträge
- 17.032
- Renomée
- 267
- Standort
- NRW
- Prozessor
- Phenom II X4 940 BE, C2-Stepping (undervolted)
- Mainboard
- Gigabyte GA-MA69G-S3H (BIOS F7)
- Kühlung
- Noctua NH-U12F
- Speicher
- 4 GB DDR2-800 ADATA/OCZ
- Grafikprozessor
- Radeon HD 5850
- Display
- NEC MultiSync 24WMGX³
- SSD
- Samsung 840 Evo 256 GB
- HDD
- WD Caviar Green 2 TB (WD20EARX)
- Optisches Laufwerk
- Samsung SH-S183L
- Soundkarte
- Creative X-Fi EM mit YouP-PAX-Treibern, Headset: Sennheiser PC350
- Gehäuse
- Coolermaster Stacker, 120mm-Lüfter ersetzt durch Scythe S-Flex, zusätzliche Staubfilter
- Netzteil
- BeQuiet 500W PCGH-Edition
- Betriebssystem
- Windows 7 x64
- Webbrowser
- Firefox
- Verschiedenes
- Tastatur: Zowie Celeritas Caseking-Mod (weiße Tasten)
Das Casting ist immer gefährlich, wenn man nicht mit Bestimmtheit sagen kann, daß die Variable ein bestimmtes Format hat, und gerade hier weißt Du ja nicht, ob der String wirklich nur Ziffern enthält (oder bestenfalls ein Minuszeichen davor).
Benutz doch Integer(String s), das wirft auch ne NumberFormatException, falls es eben keine passende Zeichenkette ist. Methoden entweder parseInt (String s) oder valueOf (String s) oder einfach den Konstuktor.
Benutz doch Integer(String s), das wirft auch ne NumberFormatException, falls es eben keine passende Zeichenkette ist. Methoden entweder parseInt (String s) oder valueOf (String s) oder einfach den Konstuktor.
tes
Vice Admiral Special
hi,
in c ist es moeglich einen char einfach an einen integer zu uebergeben.
hierbei wird schon intern mit den ascii zeichen gearbeitet.
ist das in java nicht moeglich? ich dacht, das java auch vorwiegend c-syntax verwendet.
wird zb. ein 'A' an ein integer uebergeben, steht dann dort der ascii-wert 65 drin.
gruss tes
edit:
sorry, da hab ich mich wohl verlesen.
den char musst in einen int casten.
in c ist es moeglich einen char einfach an einen integer zu uebergeben.
hierbei wird schon intern mit den ascii zeichen gearbeitet.
ist das in java nicht moeglich? ich dacht, das java auch vorwiegend c-syntax verwendet.
wird zb. ein 'A' an ein integer uebergeben, steht dann dort der ascii-wert 65 drin.
gruss tes
edit:
sorry, da hab ich mich wohl verlesen.
den char musst in einen int casten.
Zuletzt bearbeitet:
Das mit dem char sollte bei Java auch gehen (mit Datentyp char). Aber das ist ja nicht das Ziel. (denn bei C ist ein Zeichen '5' nicht 5, sondern 53 oder 0x35) Bei C hast Du dann die atoi Funktion, um etwas in ein int zu wandeln (also '5' -> 5)
Bei java ist das gebräuchlichste wohl Integer.parseInt(intZahl). Die Methode ist static, Du musst also kein Integer-Objekt anlegen. Bei den anderen beiden Sachen, die OBrian angesprochen hast, muss immer erst ein Objekt erzeugt werden.
Bei java ist das gebräuchlichste wohl Integer.parseInt(intZahl). Die Methode ist static, Du musst also kein Integer-Objekt anlegen. Bei den anderen beiden Sachen, die OBrian angesprochen hast, muss immer erst ein Objekt erzeugt werden.
OBrian
Moderation MBDB, ,
- Mitglied seit
- 16.10.2000
- Beiträge
- 17.032
- Renomée
- 267
- Standort
- NRW
- Prozessor
- Phenom II X4 940 BE, C2-Stepping (undervolted)
- Mainboard
- Gigabyte GA-MA69G-S3H (BIOS F7)
- Kühlung
- Noctua NH-U12F
- Speicher
- 4 GB DDR2-800 ADATA/OCZ
- Grafikprozessor
- Radeon HD 5850
- Display
- NEC MultiSync 24WMGX³
- SSD
- Samsung 840 Evo 256 GB
- HDD
- WD Caviar Green 2 TB (WD20EARX)
- Optisches Laufwerk
- Samsung SH-S183L
- Soundkarte
- Creative X-Fi EM mit YouP-PAX-Treibern, Headset: Sennheiser PC350
- Gehäuse
- Coolermaster Stacker, 120mm-Lüfter ersetzt durch Scythe S-Flex, zusätzliche Staubfilter
- Netzteil
- BeQuiet 500W PCGH-Edition
- Betriebssystem
- Windows 7 x64
- Webbrowser
- Firefox
- Verschiedenes
- Tastatur: Zowie Celeritas Caseking-Mod (weiße Tasten)
Nebenbei, Integer.valueOf() ist auch static
Also das Problem besteht ja eigentlich darin, nicht int und int zu verwechseln. Das System.in.read() gibt ja eine Zahl zwischen 0-255 zurück, als Wert des Chars (oder eben -1 wenn da nix ist). Daraus kann man erst nur einen String machen, da man ja nciht sagen kann, ob es tatsächlich die Ziffer 0-9 ist oder nen Buchstabe, Sonderzeichen oder wer weiß was noch was alles in die Tastatur hacken kann Also bestimmt man dann, ob es ein brauchbares ist oder nicht (-> error handling) und kann dann daraus ein int machen, mit dem man dann weiterrechnen kann wie gewünscht.
Also das Problem besteht ja eigentlich darin, nicht int und int zu verwechseln. Das System.in.read() gibt ja eine Zahl zwischen 0-255 zurück, als Wert des Chars (oder eben -1 wenn da nix ist). Daraus kann man erst nur einen String machen, da man ja nciht sagen kann, ob es tatsächlich die Ziffer 0-9 ist oder nen Buchstabe, Sonderzeichen oder wer weiß was noch was alles in die Tastatur hacken kann Also bestimmt man dann, ob es ein brauchbares ist oder nicht (-> error handling) und kann dann daraus ein int machen, mit dem man dann weiterrechnen kann wie gewünscht.
Zuletzt bearbeitet:
Nebenbei, Integer.valueOf() ist auch static
Ja, liefert aber ein Integer-Objekt zurück, das evtl. erstellt werden muss
OBrian
Moderation MBDB, ,
- Mitglied seit
- 16.10.2000
- Beiträge
- 17.032
- Renomée
- 267
- Standort
- NRW
- Prozessor
- Phenom II X4 940 BE, C2-Stepping (undervolted)
- Mainboard
- Gigabyte GA-MA69G-S3H (BIOS F7)
- Kühlung
- Noctua NH-U12F
- Speicher
- 4 GB DDR2-800 ADATA/OCZ
- Grafikprozessor
- Radeon HD 5850
- Display
- NEC MultiSync 24WMGX³
- SSD
- Samsung 840 Evo 256 GB
- HDD
- WD Caviar Green 2 TB (WD20EARX)
- Optisches Laufwerk
- Samsung SH-S183L
- Soundkarte
- Creative X-Fi EM mit YouP-PAX-Treibern, Headset: Sennheiser PC350
- Gehäuse
- Coolermaster Stacker, 120mm-Lüfter ersetzt durch Scythe S-Flex, zusätzliche Staubfilter
- Netzteil
- BeQuiet 500W PCGH-Edition
- Betriebssystem
- Windows 7 x64
- Webbrowser
- Firefox
- Verschiedenes
- Tastatur: Zowie Celeritas Caseking-Mod (weiße Tasten)
Wie unser Java-Lehrer zu sagen pflegte: "alles ist ein Objekt"
Sieben
Vice Admiral Special
Huhu,
BufferedReader din = new BufferedReader ( new InputStreamReader ( System.in ) );
int x = 0;
x = Integer.parseInt( din.readLine () );
probiers mal damit...
Also du liest von der Konsole ein String ein, den musst du entsprechend parsen.... dabei kann es aber zu einer Ausnahme des Typs "NumberFormatException" auftreten die du noch abfangen musst...
gruß! Sieben!
BufferedReader din = new BufferedReader ( new InputStreamReader ( System.in ) );
int x = 0;
x = Integer.parseInt( din.readLine () );
probiers mal damit...
Also du liest von der Konsole ein String ein, den musst du entsprechend parsen.... dabei kann es aber zu einer Ausnahme des Typs "NumberFormatException" auftreten die du noch abfangen musst...
Code:
BufferedReader din = new BufferedReader ( new InputStreamReader ( System.in ) );
int x = 0;
try{
x = Integer.parseInt( din.readLine () );
}
catch( NumberFormatException e)
{
System.out.println( "Kann eingabe nicht formatieren" );
}
gruß! Sieben!
Cybered
Admiral Special
- Mitglied seit
- 22.09.2002
- Beiträge
- 1.625
- Renomée
- 14
- Standort
- Unimatrix-Zero
- Aktuelle Projekte
- Spin;Seti;QMC
- Lieblingsprojekt
- SETI
- Meine Systeme
- Athlon 64 X2 3800+
- BOINC-Statistiken
vielen Dank...jetzt gehts...hab jetzt zwar noch nen anderen Fehler (Division durch Null), aber das werde ich irgendwie hinbiegen...
danke
Cybered
danke
Cybered
Ähnliche Themen
- Antworten
- 0
- Aufrufe
- 52K
- Antworten
- 0
- Aufrufe
- 142K
- Antworten
- 0
- Aufrufe
- 134K
G
- Antworten
- 5
- Aufrufe
- 2K
G