Umwandlung von Datentypen


Heute werden wir zusammen die Umwandlung der Primitiven Datentypen von einem String Eingabe unternehmen. Wir haben bis jetzt vieles unternommen um die nötigen Erfahrungen und Kenntnisse für unseren Hauptprojekt den EinheitenUmrechner zu erlernen. In der Realität machen auch User in der Konsole Fehler. Bei den Programmen bis jetzt haben wir diese so programmiert, sodass diese nur einen Primitiven Datentyp als Wert von uns erwarten. Es kann auch sein, dass in der Praxis der Anwender unabsichtlich einen oder mehreren Buchstaben oder Zeichen eintippt. In diesem Fall würden die Programme abstürzen weil diese etwas unbrauchbares vom Benutzer bekommen hat. Damit wir in der Wirklichkeit solche spontane Abstürze vermeiden können brauchen wir diese Fehler abzufangen bevor diese den Programm zum Absturz bringen. Um dies in unserem Hauptprojekt anwenden zu können müssen wir als erstes die Eingaben von String zum Primitiven Datentypen unternehmen.

Wie immer habe ich für euch im Voraus einen BeispielCode geschrieben. Ich gehe regulär diesen Code 1:1 durch und werde euch über die neuen Funktionen aufklären. Diejenigen, die meine Post von Anfang an folgen, die werden alles verstehen. Für die Quereinsteiger habe ich die Links für die Fremdbegriffe ganz Unten eingetragen.


01 package java2enterprise;
02 import java.util.Scanner;
03
04 public class eingabeUmrechnen {
05
06    public static void main(String[] args) {
07
08       // Umwandlung der Reellen Zahlen (mit double)
09       double i;
10       Scanner scannerEingabe = new Scanner(System.in);
11       System.out.println("Geben Sie eine Reelle Zahl ein: ");
12       String eingabe = scannerEingabe.nextLine();
13       i = Double.parseDouble(eingabe);
14       System.out.println("Die Reelle Zahl lautet: "+i);
15
16       // Umwandlung der Reellen Zahlen (mit float)
17       float l;
18       Scanner scannerEingabeL = new Scanner(System.in);
19       System.out.println("Geben Sie eine Reelle Zahl ein: ");
20       String eingabeL = scannerEingabeL.nextLine();
21       l = Float.parseFloat(eingabeL);
22       System.out.println("Die Reelle Zahl lautet: "+l);
23
24       // Umwandlung der Ganzen Zahlen (mit int)
25       int j;
26       Scanner scannerEingabeJ = new Scanner(System.in);
27       System.out.println("Geben Sie eine Ganze Zahl ein: ");
28       String eingabeJ = scannerEingabeJ.nextLine();
29       j = Integer.parseInt(eingabeJ);
30       System.out.println("Die Ganze Zahl lautet: "+j);
31
32       // Umwandlung der Ganzen Zahlen (mit long)
33       long k;
34       Scanner scannerEingabeK = new Scanner(System.in);
35       System.out.println("Geben Sie eine Ganze Zahl ein: ");
36       String eingabeK = scannerEingabeK.nextLine();
37       k = Long.parseLong(eingabeK);
38       System.out.println("Die Ganze Zahl lautet: "+k);
39
40       // Umwandlung der Ganzen Zahlen (mit short)
41       short m;
42       Scanner scannerEingabeM = new Scanner(System.in);
43       System.out.println("Geben Sie eine Ganze Zahl ein: ");
44       String eingabeM = scannerEingabeM.nextLine();
45       m = Short.parseShort(eingabeM);
46       System.out.println("Die Ganze Zahl lautet: "+m);
47
48       // Umwandlung der Gnazen Zahlen (-128 bis 127)
49       byte n;
50       Scanner scannerEingabeN = new Scanner(System.in);
51       System.out.println("Geben Sie eine Ganze Zahl im I=[-128 ; 127]");
52       String eingabeN = scannerEingabeN.nextLine();
53       n = Byte.parseByte(eingabeN);
54       if (n <= 127 && n >= -128) {
55       System.out.println("Ihre Eingabe in I ist die: "+n);
56       }
57       else {
58             System.out.println("Die Zahl ist kein Element der Interwall I");
59       }
60    }
61 }

Wie ihr es schon bemerkt habt, sehen fast alle der Anweisungen gleich aus. Daher werde ich mit euch die Anweisungen zwischen der Zeile 8-14 und 48–59 besprechen.

Fangen wir mit der Zeile 8 bis 14 an. Als erstes deklarieren wir die Variable i mit dem Primitiven Datentyp Double welches wir erst später brauchen werden. Wie wir es bis jetzt hatten verwenden wir für Allgemeine Angabe für die Variablen den Scanner. In der Zeile 13 deklarieren wir die Eingabe des Benutzers mit der Umgewandelten String wert. Dies Funktioniert wie folgt. Der Benutzer wird aufgefordert eine Reelle Eingabe zu tätigen. Also alle Zahlen mit oder ohne Komma. Die Eingegebene Zahl vom Benutzer wird als String in die Variable „eingabe“ gespeichert. Erst ab Zeile 13 wird die als String gespeicherte Variable „eingabe“ in einem Double Wert umgewandelt. Daher ist die am Anfang initialisierte Variable i sehr von Bedeutung. Wir konnten auch diesen Schritt kurz vor der Umwandlung unternehmen. Jedoch wollte ich es schnell hinter mir haben und meine Hintergrundgedanken für das wichtigste frei räumen. Mit der Eingabe...
i = Double.parseDouble(eingabe);
wird die String Variable „eingabe“ auf dem Primitiven Datentyp Double Umgewandelt und danach zu dem double Variablen „i“ initialisiert.
Nach dieser Umwandlung wird die Zahl, welches jetzt wirklich als Zahl und nicht als Zeichenkette gespeichert worden ist, ausgegeben.

Bei dem Abschnitt 48 bis 59 haben wir ebenfalls bei der Umwandlung der Variablen keinerlei Unterschied bis auf die Variable selbst und die Bezeichnungen der Variablen sowie die Verzweigung haben wir kein Unterschied zu den Abschnitten davor.
Da die Variable byte zwischen dem Intervall [127 ; -128] bestimmt ist, mussten wir die Zahlen welches größer als 127 und kleiner als -128 ausschließen. Wenn der Benutzer Eine Zahl im Intervall I eingibt, wird diese Ausgegeben. Wird eine Zahl außerhalb des Intervalls I eingegeben so wird das Programm abstürzen da die Variable keine Werte außer Im Intervall I=[-128 bis 127] speichern kann. Solche oder ähnliche Fehlermeldungen werden wir später raffiniert abfangen und das Programm daran verhindern zu abstürzen.



Die Links für die Quereinsteiger:

Scanner Einführung >>hier<<
Die primitiven Datentypen >>hier<<
Verzweigungen >>hier<< und >>hier<<

Kommentare

Beliebte Posts aus diesem Blog

How can I transform a .jar file to a .bat file?

Ein Kleines Spiel mit Altersabfrage

Zufallszahlen und Verzweigungen in Python