Java - Tastatursteuerung?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ah, das ist lehrreich.

Lies mal genau, was System.in.read() macht. Du nimmst das, was dort rauskommt, und schreibst es wieder raus, warum auch immer du das tust:

System.out.println(System.in.read());

Wenn du dir eine ASCII-Tabelle ansiehst, könntest du dir vielleicht denken, warum die Eingabe von Enter zur Ausgabe von "10" oder "1310" führt...


NikoJ 
Beitragsersteller
 10.11.2020, 07:43

Oh vielen Dank. Ich dachte, dass muss da so stehen, weil es mir so erklärt wurde. Vielen Dank.

0
alfredo153  10.11.2020, 07:45
@NikoJ

Generell würde ich für den Zweck Scanner.nextLine() empfehlen - einen Scanner hast du ja schon angelegt. Mit dem derzeitigen Ansatz bist du auch betriebssystemabhängig, denn nur auf Windows löst "Enter" zwei Bytes aus (CR+LF), auf Linux, MacOS & Co nur eines (LF).

1

Versuch mal das Leerzeichen zwischen den Klammern im Read Befehl ( ) rauszunehmen. Leider finde ich auch nichts über dieses 1310.

Woher ich das weiß:eigene Erfahrung

DonkeyShot  18.10.2020, 14:40

1310=CR+LF?

4
NikoJ 
Beitragsersteller
 18.10.2020, 16:38
@geri3d

Wie meint ihr? :-) ist alles etwas neu für mich.

1
geri3d  18.10.2020, 16:46
@NikoJ

CR + LF bedeutet carriage return + line feed in Ascii Code 13+10

1
NikoJ 
Beitragsersteller
 19.10.2020, 13:26
@geri3d

Achso, also zeigt es damit nur an, welche Taste ich nutze. Danke

0
geri3d  19.10.2020, 13:29
@NikoJ

Sollte nicht dargestellt werden aber ich denke du hast das Problem jetzt im Griff.

1
NikoJ 
Beitragsersteller
 19.10.2020, 13:45
@geri3d

Eigentlich nicht, aber es hindert mich ja erstmal nicht daran, dass Programm zu schreiben. Es stört ja nur Optisch ein wenig.

0
geri3d  19.10.2020, 13:50
@NikoJ

Es soll auch nicht so sein. Hat die ReadLine Methode keine Besserung gebracht?

1
NikoJ 
Beitragsersteller
 19.10.2020, 13:56
@geri3d

Ähh... Ehrlich gesagt habe ich da noch nicht wirklich den Überblick, was ich da eintippen soll. :-/

Ich werde mich besser damit beschäftigen, wenn ich etwas mehr Ahnung davon habe.

1
NikoJ 
Beitragsersteller
 18.10.2020, 14:29

Nein leider nicht, trotzdem vielen Dank.

1