Wert Char einlesen

FiselM

Mitglied
Hallo Ich habe da mal eine Grundsätzliche Frage.
und zwar sitze ich vor einer Aufgabe in der ich einen 4 stelligen Wert ( Zahl oder Buchstaben) über die Konsole eingeben soll mit der folgenden Routine

public static char char_console_in()
{
String s = "";
boolean result = false;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try
{
s = in.readLine();
}
catch(IOException e)
{
System.out.println("Eingabe fehlerhaft!" + e);
}
return s.charAt(0);
}
Die ZEichen sollen einzeln ausgelesen werden für eine Berechnung?
Schleife?
 
Entschuldige, aber worin besteht jetzt die Frage? Ich würde mich eher fragen, was für Berechnungen du mit Buchstaben machen willst ... oder sollen das Hex-Ziffern darstellen?
 
Hallo Genau es sollen ein 4 stelliger Wert mit Werten 0 - 9 A - f eingelesen werten und daraus die Dezimalzahl berechnet werden.

und ich hänge an der Eingabe des 4 stelligen wertes mit der Routine von 1.

Die Routine liest in der Konsole immer den ersten Wert ein. Aber wie komme ich an die anderen 3 Werte ohne das ich die Routine Viermal Aufrufe und den Wert der charAt jeweils um 1 erhöhe, Oder? Bitte um einen Rat?
 
Das oben macht eh keinen Sinn ... nen vollständigen String einlesen (eine Zeile, abgeschlossen durch Enter) und dann nur den ersten Buchstaben nehmen ... also du hast da echt ne komische Aufgabe.
 
Hallo,

warum ließt du nicht direkt den kompletten Wert ein und holst dir dann die 4 Stellen oder warum ließt du nicht einfach alles mit read ein, so wird es nämlich zeichenweise eingelesen.


MFG

zEriX
 
Die Aufgabenstellung gibt die Methode zum Einlesen der 4 Zeichen vor.
Sonst hätte ich den String eingelesen und die 4 Werte einzeln ausgelesen
und diese dann weiter verarbeitet.
 
Wie kann ich den eingelesene 4-stelligen String einlesen und in seine 4 Teile zerlegen?
Bitte um Hilfe

Viele Grüße
 
Quick and dirty...

Java:
package de.tutorials;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class StringReader {

	StringReader() throws Exception {
		char [] zeichen = reader();
		System.out.println("Erstes Zeichen: " + zeichen[0]);
		System.out.println("Zweites Zeichen: " + zeichen[1]);
		System.out.println("Drittes Zeichen: " + zeichen[2]);
		System.out.println("Viertes Zeichen: " + zeichen[3]);
		
	}
	
	private char [] reader() throws Exception {
		BufferedReader in  = new BufferedReader(new InputStreamReader(System.in));
		while (true){
			
				System.out.println("Bitte vierstelligen Hexwert eingeben");
				String zeile = in.readLine();
				if(zeile.matches("^[0-9a-fA-F]{4}$")) return zeile.toCharArray();
				System.out.println(zeile + " ist kein gültiger Wert");
			
		} 
		
	}
	public static void main(String[] args) throws Exception {
		new StringReader();

	}

}
 
Zuletzt bearbeitet:
Für Konvertieren eines hex Strings in dezimal schau dir mal die Methode Integer.parseInt(String, int radix) an. Außer du sollst es neu erfinden
 
Zurück