Exceptions für Methoden

Nightmeow3

Mitglied
Wir mussten Methoden erstellen, die entweder Zahlen in ausgeschriebener Form ausgibt( also z.B. 519 wird zu " fuenf eins neun"), oder Strings in Zahlen umwandelt ( "eins zwei drei" zu 123. Das habe ich auch bisher hinbekommen. Jetzt steht noch bei der Aufgabe folgendes:

"Die Methode parse soll (wie Integer.parseInt) eine NumberFormatException werfen, falls der String nicht die oben angegebene Form hat. Da NumberFormatException eine RuntimeException ist, muss sie in der Signatur der Methode parse nicht durch eine throws-Klausel deklariert werden.
Da leere Strings keine gültigen Bestandteile sind, sollen diese zu einer NumberFormatException führen. Mehrere Leerzeichen am Ende werden durch split ignoriert. Entsprechend müssen Leerzeichen am Ende des zu parsenden Strings nicht zu einer NumberFormatException führen.
Es soll von der Methode parse erkannt werden, wenn eine Folge von Ziffern nicht mehr im Bereich der durch int darstellbaren Zahlen liegt (also beispielsweise größer ist als Integer.MAX_VALUE). Auch in diesem Fall soll eine NumberFormatException geworfen werden."

Man könnte wahrscheinlich if/else benutzen, wenn man eine NumberFormatException werfen soll, wenn es größer bzw kleiner als der Integer.MIN_VALUE ist. Aber ich weiß nicht, wie man das mit try/catch/throw machen sollte. Ich bedanke mich schonmal für jede Hilfe, die ich bekomme.


Java:
package oop.wordnumerals;

import java.util.Arrays;

public class WordNumeralFormat
    {
    
    public static String toString(int zahl1)
    {
        String zahlenString = Integer.toString(zahl1);
        String[] zahlen = zahlenString.split("");
        
        String wiedergabe1 = "";
        for(int i = 0; i < zahlen.length; i++)
        {
            switch(zahlen[i])
            {
                case "0":
                    wiedergabe1 += "null" + " ";
                    break;
                case "1":
                    wiedergabe1 += "eins" + " ";
                    break;
                case "2":
                    wiedergabe1 += "zwei" + " ";
                    break;
                case "3":
                    wiedergabe1 += "drei" + " ";
                    break;
                case "4":
                    wiedergabe1 += "vier" + " ";
                    break;
                case "5":
                    wiedergabe1 += "fuenf" + " ";
                    break;
                case "6":
                    wiedergabe1 += "sechs" + " ";
                    break;
                case "7":
                    wiedergabe1 += "sieben" + " ";
                    break;
                case "8":
                    wiedergabe1 += "acht" + " ";
                    break;
                case "9":
                    wiedergabe1 += "neun" + " ";
                    break;
                default:
                    wiedergabe1 += "";
            }
        }   
        return wiedergabe1;
    }
    
    public static int parse(String s)
    {
        String[] words = s.split(" ");
        int wiedergabe2;
        String x = "";
        for(int i = 0; i < words.length; i++)
        {
            switch(words[i])
            {
                case "-" :
                    x+= "-";
                    break;
                case "null":
                    x += "0";
                    break;
                case "eins":
                    x += "1";
                    break;
                case "zwei":
                    x += "2";
                    break;
                case "drei":
                    x += "3";
                    break;
                case "vier":
                    x += "4";
                    break;
                case "fuenf":
                    x += "5";
                    break;
                case "sechs":
                    x += "6";
                    break;
                case "sieben":
                    x += "7";
                    break;
                case "acht":
                    x += "8";
                    break;
                case "neun":
                    x += "9";
                    break;
                default:
                    x += "";
            }
        }   
        
        wiedergabe2 = Integer.parseInt(x);
        return wiedergabe2;
    }

    public static void main(String[] args)
    {
        System.out.print(toString(4711));
        System.out.print(parse("- fuenf drei zwei eins"));
    }
    }
 

Neue Themen


Oben