Input/Output Buchstaben als bestimmte Zahl erkennen

dt-schulte

Mitglied
Hallo,

ich benötige mal wieder etwas Unterstützung.
Ich habe mir ein kleines Programm geschrieben, welches in der Lage ist, Zahlen, egal welcher Basis in eine andere Basis umzurechnen.
Das funktioniert auch sehr gut, solange ich als Ausgangsbasis nicht höher als Dezimalzahlen gehe.

Alles über Dezimal würde erfordern, das ich Buchstaben eingebe. Sobald ich das aber mache, schmeisst mich das Programm raus.

Was muss ich machen, damit z.B. bei Eingabe des Buchstaben F der Wert 15 erkannt wird?

Danke und gruß :)

Java:
import java.io.*;
import javagently.*;
class wandel
{
  public static void main (String Args[])
  throws IOException
  {
    // Einleitung
    System.out.println("***************************************************");
    System.out.println("**      Mit diesem Programm ist es möglich       **");
    System.out.println("**  eine beliebige Zahl einer beliebigen Basis   **");
    System.out.println("** in eine andere beliebige Basis umzurechnen    **");
    System.out.println("***************************************************");
  
    //Variablen festlegen
    String zahl1 ;
    int basis1 = 0 ;
    int basis2 = 0;
    String HEX = "0123456789ABCDEF";
    String b;
    int z = 0;
    int k= 0;
    int i = 0;
    int a = 0;
    int e = 0;
    int f = 0;
    int d= 0;
    int rest[] = new int[32];
  
  
    //Programmablauf starten
    System.out.println("");
    System.out.println("");
    System.out.println("******************************************************************");
    System.out.println("** Bitte geben Sie gleich die erste Basis der ersten Zahl ein.  **");
    System.out.println("** Beachten Sie bitte: Durch Eingabe der Basis legen Sie fest,  **");
    System.out.println("** welche Ziffernmenge gültig ist. Die zulässige Menge ist  n-1 **");
    System.out.println("** Zulässige Ziffernmengen sind von 1 - 0 - F                   **");
    System.out.println("** Falsche Eingaben führen zum Abbruch des Programms            **");
    System.out.println("******************************************************************");
  
    BufferedReader  in=
    new BufferedReader (
    new InputStreamReader (System.in));
  
    //Eingabe Basis 1
    System.out.println("");
    System.out.println("Bitte geben Sie die erste Basis ein");
    System.out.println("Zulässige Werte sind 2 - 16");
  
    basis1 = javagently.Text.readInt(in);
  
    //Prüfen, ob eine zulässige Basis eingegeben wurde. Ggf Programmabbruch
    if (basis1<2 || basis1 >16) {
      System.out.println("Die Eingabe " +basis1+ " liegt ausserhalb des zulässigen Bereichs");
    }
  
    //Eingabe der ersten Ziffernfolge mit anschließender Prüfung ob der Zahlenbereich zulässig ist
    else {
      System.out.println("Bitte geben Sie Ihre Zahl an.");
      System.out.println("Die Zahl darf nur Ziffern aus der Menge 0 bis " +(HEX.charAt(basis1-1))+ " enthalten");
      zahl1 = javagently.Text.readString(in);
    
      //abbruch bei ungültiger Ziffernmenge
      for (i=0;i<zahl1.length() ;i++ ) {
        if (zahl1.charAt(i)> HEX.charAt(basis1-1)) {
          System.out.println("Das war nix");
          System.exit(-1);
        }
      }
    
      //Auswahl der Zielbasis mit gleichem Abbruchkriterium wie Basis 1
      System.out.println("----------------------------------------------------------------------");
      System.out.println("");
      System.out.println("Bitte geben Sie die Zielbasis ein:");
      System.out.println("Zulässige Werte sind 2 - 16");
    
      basis2 = javagently.Text.readInt(in); 
      System.out.println("");
      System.out.println("-----------------------------------------------------------------------");
      System.out.println("");
    
      if (basis2<2 || basis2 >16) {
        System.out.println("Die Eingabe " +basis2+ " liegt ausserhalb des zulässigen Bereichs");
        System.exit(-1);
      } // end of if
    
      //Array zum reinschreiben der einzelnen Ziffern
      String summe[] = new String [zahl1.length()];
    
      for (i= 0;i<zahl1.length() ;i++ ) {
        k =((zahl1.charAt(i)-48));
        b = String.valueOf(k);
        summe[i] = b;
      } // end of for
    
      //Beginn der Rechenoperation mit den jeweiligen Ziffern
      // Schritt 1: Multiplikation der Ziffer mit der entsprechend potenzierten Basis
      // Schritt 2: Zusammenrechnen der Zwischenergebnisse zur Berechnung der Endziffer zur gewählten Basis 2
      for (z=i-1 ;z>=0 ;z-- ) {
        Integer v = Integer.valueOf(summe[z]);
        double w = v* Math.pow(basis1,a);
        int p = (int)w;
        System.out.println("Ziffer " +z+ " * Basis^"+a);
        System.out.println("= " +summe[z]+" * " +basis1+"^"+a+ " = " +p);
        System.out.println("");
        e +=p ;
        System.out.println("Ergebnis " +e);
        System.out.println("");
        System.out.println("");
        a++ ;
      } // end of for
    
      // Berechnung: Teilen des Ergebnisses durch die gewählte Basis2
      // Evtl Rest gleich Ziffer des Ergebnisses --> Wiederholung mit Restquotient solange > 0
      
      System.out.println("Berechnung der Zahl zur Basis " +basis2);
      System.out.println("---------------------------------------------------------");
      while (e > 0) {
        rest[d] = e%basis2;
        e/=basis2;
        d++;
      }
      System.out.println("-------------------------------------------------------");
      for (f = d-1 ;f>=0 ;f-- ) {
        System.out.print(HEX.charAt(rest[f]));
      }
    }
  }
}
 

dt-schulte

Mitglied
Danke für die Antworten. Mir ist unabhängig davon noch eine Idee gekommen, die ich zuerst ausprobieren möchte.
es sollte doch eigentlich reichen, wenn ich vor der Prüfung ob der Zahlenbereich zulässig ist, einfach die Werte der Eingabe mit dem Stellenwert im String HEX vergleiche und damit dann rechne.

Also in etwa so,
Zähle stellen der einzelnen Zeichen der Eingabe, z.b "f" IM
String HEX
f= stelle 16 im string HEX
schreibe 16 in array xy
prüfe ob stelle 16 zulässig in der gewählten basis

wenn ja, dann rechne mit n-1
wenn nein dann schmeiss mich raus.

Bin grad unterwegs, daher etwas wirr die Antwort :)
 

dt-schulte

Mitglied
So, danke mal wieder für die Hilfestellung hier. Ich habs gelöst bekommen. Wahrscheinlich etwas umständlich, aber der Kurs "Codeoptimierung" kommt erst später :p

Java:
      String summe[] = new String [zahl1.length()];
     
      for (i= 0;i<zahl1.length() ;i++ ) {
        if (zahl1.charAt(i) >=48) {
          k =((zahl1.charAt(i)-48));
          b = String.valueOf(k);
         
        }
        if (zahl1.charAt(i) >=65) {
          k =((zahl1.charAt(i)-55));
          b = String.valueOf(k);
         
        }
        if (zahl1.charAt(i) >=97) {
          k =((zahl1.charAt(i)-87));
          b = String.valueOf(k);
        }
        summe[i] = b;
      }
     
      //abbruch bei ungültiger Ziffernmenge
      for (int y=i-1;y >=0 ;y-- ) {
        Integer s = Integer.valueOf(summe[y]);
        if (s > basis1-1) {
          System.out.println("Das war nix");
          System.exit(-1);
        }
      }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C bestimmte Buchstaben in einem String ändern Java Basics - Anfänger-Themen 5
H Buchstaben zählen Java Basics - Anfänger-Themen 9
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Tom/S KeyCode zu Buchstaben Java Basics - Anfänger-Themen 0
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
R Mehrere Buchstaben aus einem String entfernen Java Basics - Anfänger-Themen 1
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
J Buchstaben aus textArea extrahieren Java Basics - Anfänger-Themen 4
S Buchstaben in Großbuchstaben (Strings) Java Basics - Anfänger-Themen 5
O FilterStream häufigkeit der Buchstaben Java Basics - Anfänger-Themen 43
F Buchstaben in einem String vertauschen (Ohne replace) Java Basics - Anfänger-Themen 10
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
A Erste Schritte Buchstaben im Array suchen Java Basics - Anfänger-Themen 8
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
x-tshainge Zahlen Buchstaben zuordnen Java Basics - Anfänger-Themen 4
T Datentypen char als Buchstaben statt als Zahl ausgeben Java Basics - Anfänger-Themen 4
M replace Methode für Buchstaben Java Basics - Anfänger-Themen 29
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
J Methoden Eingabe Methode nur Buchstaben Java Basics - Anfänger-Themen 4
I Hilfe beim löschen von Buchstaben. Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
V char Eingabe aber nur für Buchstaben Java Basics - Anfänger-Themen 4
J Zufällige Buchstaben Java Basics - Anfänger-Themen 45
C Klassen Positionszähler auf Buchstaben setzen Java Basics - Anfänger-Themen 14
S Input/Output Buchstaben in Eingabe finden und ausgeben Java Basics - Anfänger-Themen 5
R [Erledigt]Fehler beim löschen von einzelnen Buchstaben aus StringBuilder Java Basics - Anfänger-Themen 1
Bregedur String beim nächstem groß geschriebenen Buchstaben trennen Java Basics - Anfänger-Themen 1
E Input/Output Konsole erkennt meinen Buchstaben nicht Java Basics - Anfänger-Themen 12
F Häufigkeit von Buchstaben Java Basics - Anfänger-Themen 7
L Java Strings Buchstaben vertauschen Java Basics - Anfänger-Themen 4
G Erste Schritte Einen Array absuchen und Buchstaben zählen Java Basics - Anfänger-Themen 17
I Programm, welches eine Textzeile einliest und alle darin enthaltenen Buchstaben umwandelt Java Basics - Anfänger-Themen 3
S String ab dem Wechsel Buchstaben zu Zahlen splitten Java Basics - Anfänger-Themen 14
A Erste Schritte Buchstaben in zahlen umwandeln Java Basics - Anfänger-Themen 4
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
S Einzelne Buchstaben aus Jtextfield in array Java Basics - Anfänger-Themen 2
A OOP Buchstaben mit ASCII Werten darstellen Java Basics - Anfänger-Themen 1
M String überprüfen ob nur Buchstaben enthalten sind? Java Basics - Anfänger-Themen 8
E Buchstaben verhindern / Try & Catch Block Java Basics - Anfänger-Themen 3
B Zahlen und Buchstaben in cmd eingeben Java Basics - Anfänger-Themen 5
J Buchstaben aus String einzeln Zählen Java Basics - Anfänger-Themen 12
S nur Buchstaben in JTextField Java Basics - Anfänger-Themen 3
X String einzelne Buchstaben ersetzen Java Basics - Anfänger-Themen 4
A Erste Schritte Datei einlesen und Buchstaben zählen Java Basics - Anfänger-Themen 13
V Zufallsgenerator für Buchstaben Java Basics - Anfänger-Themen 22
A Erste Schritte konsoleneingabe von Buchstaben Java Basics - Anfänger-Themen 3
M Von File lesen Buchstaben lesen und zählen - scheitert an der Eingabe Java Basics - Anfänger-Themen 4
K Methoden Kontrollstruktur versagt bei Buchstaben... Java Basics - Anfänger-Themen 6
E Buchstaben nach Größe vergleichen Java Basics - Anfänger-Themen 4
M Benennung nach Buchstaben Java Basics - Anfänger-Themen 18
M Erste Schritte zwei Buchstaben die im String enthalten sind ausgeben Java Basics - Anfänger-Themen 21
J Programm zum Buchstaben austauschen, logikproblem Java Basics - Anfänger-Themen 2
T keine buchstaben!nur zahlen eingabe möglich Java Basics - Anfänger-Themen 48
P toUpperCase() - Buchstaben die ersetzt werden als Großbuchstaben ausgeben Java Basics - Anfänger-Themen 5
R Regexp nur Buchstaben und Ziffener beliebig oft Java Basics - Anfänger-Themen 3
S Buchstaben/Wörter im String zählen Java Basics - Anfänger-Themen 6
R buchstaben einlesen - fehlermeldung schreiben? Java Basics - Anfänger-Themen 9
M String (mit Buchstaben) zu Int Java Basics - Anfänger-Themen 6
D Buchstaben den jeweiligen Zahlen hinzufügen mit einer if. Java Basics - Anfänger-Themen 6
F Datentypen Zufällige Buchstaben vertauschen Java Basics - Anfänger-Themen 3
K Zahlen und buchstaben gemeinsam in ein array? Java Basics - Anfänger-Themen 17
F Leerzeichen zwischen jeden Buchstaben eines Strings einfügen Java Basics - Anfänger-Themen 16
J Buchstaben zählen Java Basics - Anfänger-Themen 17
H String zerlegen in einzelne Buchstaben (char)?? Java Basics - Anfänger-Themen 7
R buchstaben zählen Java Basics - Anfänger-Themen 8
R In einem Palindrom 2 Buchstaben vergleichen Java Basics - Anfänger-Themen 16
J Anzahl der Buchstaben in einem String Java Basics - Anfänger-Themen 12
P Buchstaben: Haeufigkeitstabelle Java Basics - Anfänger-Themen 9
S String Elemente bzw. Buchstaben miteinander vertauschen? Java Basics - Anfänger-Themen 6
T JTextField max. 8 Zeichen, nur Buchstaben Java Basics - Anfänger-Themen 8
M jeden 2ten Buchstaben aus array Java Basics - Anfänger-Themen 6
C ASCII Codes in Buchstaben umwandeln Java Basics - Anfänger-Themen 2
J Buchstaben einlesen Java Basics - Anfänger-Themen 8
V Anzahl eines Buchstaben in einem String zählen Java Basics - Anfänger-Themen 7
J Buchstaben zählen Java Basics - Anfänger-Themen 4
T Buchstaben an bestimmter Stelle aus String lesen Java Basics - Anfänger-Themen 5
A eingelesene String in buchstaben teilen Java Basics - Anfänger-Themen 9
D Suche in JList nach dem ersten Buchstaben Java Basics - Anfänger-Themen 2
G Griechische statt lateinischen Buchstaben beim Schreiben Java Basics - Anfänger-Themen 9
X Auswahl durch Eingabe von Buchstaben - aber wie? Java Basics - Anfänger-Themen 2
T Ersten Buchstaben in einem Wort groß schreiben. Java Basics - Anfänger-Themen 6
N alle "3er" Möglichkeiten aus 10 Buchstaben Java Basics - Anfänger-Themen 6
A Beliebiger String --> Buchstaben und Zahlen Java Basics - Anfänger-Themen 4
G Griechische Buchstaben Java Basics - Anfänger-Themen 6
C Variablentyp gesuch, der Zahlen und Buchstaben beinhaltet Java Basics - Anfänger-Themen 20
I Prüfen, ob String Buchstaben enthält Java Basics - Anfänger-Themen 3
Schandro Ersetzen von Buchstaben in einer readLine Java Basics - Anfänger-Themen 28
C X. Buchstaben aus String auslesen Java Basics - Anfänger-Themen 3
N Keyevents mit Buchstaben Java Basics - Anfänger-Themen 5
G String buchstaben in Zahlen umwandeln Java Basics - Anfänger-Themen 5
C Überprüfen, ob die eingabe auch buchstaben enthält Java Basics - Anfänger-Themen 6
H Buchstaben zählen! Java Basics - Anfänger-Themen 3

Ähnliche Java Themen


Oben