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<<
Kommentare
Kommentar veröffentlichen