Einzelzeichen einlesen

Guten Abend ich habe folgende Aufgabe:

"Schreiben Sie ein Programm, das ein Einzelzeichen einliest.
Ist das Einzelzeichen
 ein Großbuchstabe, soll das Wort "Großbuchstabe" ausgegeben werden.
 eine hexadezimale Ziffer (d.h. '0' – '9', 'a' – 'f' oder 'A' – 'F'), dann soll
„Hexadezimale Ziffer“ ausgegeben werden.
 eine binäre Ziffer, dann soll „binäre Ziffer“ ausgegeben werden
 eine Ziffer im Oktalsystem, dann soll „oktale Ziffer“ ausgegeben werden
Fällt ein Einzelzeichen in mehrere Kategorien, sollen alle passenden Ausgaben
erscheinen. Fällt ein Einzelzeichen in keine der Kategorien, soll die Ausgabe
„Unbekannt“ erfolgen."

Das Programm läuft so weit ich habe jedoch noch Probleme bei den letzten beiden Sätzen der Aufgabe und wäre für Tipps sehr dankbar!
EDIT: Ich habe mich bei den Zahlen in den if-Anweisungen auf das Verzeichnis im ASCII-Code bezogen.
Java:
package lektion3;
import java.util.Scanner;
public class einzelzeichen {
    public static void main(String[] args)
    {
    Scanner Einzelzeichen= new Scanner (System.in);  
    System.out.println("Bitte geben Sie ein Einzelzeichen ein: ");
    char Zeichen=Einzelzeichen.next().charAt(0);
    {
    if (Zeichen>=65 && Zeichen <=90)                //groß
        System.out.println("Großbuchstabe");
   
    if (Zeichen>=97 && Zeichen <=122)                //klein
        System.out.println("Kleinbuchstabe");
   
    if (Zeichen==48 || Zeichen ==49)                //binär
        System.out.println("binäre Ziffer");
   
    if (Zeichen>=0 && Zeichen <=7)                     //oktal
        System.out.println("oktale Ziffer");
   
    if (Zeichen>=48 && Zeichen <=57)                 //hex
        System.out.println("Hexadezimale Ziffer");
   
   
    if (Zeichen>=65 && Zeichen <=70)                 //hex
        System.out.println("Hexadezimale Ziffer");
   
   
        System.out.println("Unbekannt!");
    }
    }

}
 
Zuletzt bearbeitet:
Guten Abend und willkommen im Forum.

Zunächst einmal der fast schon obligatorische Hinweis: in Java gibt es die Konvention, Bezeichner von Variablen, Methoden und Parameter in lowerCamelCase, Typnamen (Klassen & Co.) dagegen in UpperCamelCase zu schreiben. Bitte daran halten, das vereinfacht das Lesen des Codes ungemein.

Dein Programm funktioniert nur zum Teil, probier mal die Umlaute. Die Klasse https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html bietet hierfür ganz praktische Methoden an :)

Den Block (geschweifte Klammern) um die ifs brauchst Du nicht.

Was den vorletzten Satz betrifft, so hast Du diesen bereits erfüllt. Da jede if-Anweisung ausgeführt wird, werden ggf. auch mehrere Kategorien ausgegeben. Beispielsweise wäre die '0' eine binäre, oktale und hexadezimale Ziffer.

Für den letzten Satz könntest Du Dir überlegen, eine boolesche Variable zu verwenden, diese in den ifs zu setzen und am Ende zu überprüfen...
 
Code:
    if (Zeichen>=0 && Zeichen <=7)                     //oktal
        System.out.println("oktale Ziffer");
  
    if (Zeichen>=48 && Zeichen <=57)                 //hex
        System.out.println("Hexadezimale Ziffer");
Wieso sind die Oktalen Ziffern hier Werte von 0 - 7 aber die Hexadezimalen Ziffern 48 bis 57?

Das willst Du Dir evtl. auch noch einmal ansehen und anpassen ....
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben