# Typumwandlung Integer, Float etc in String



## VanillaSky (11. Jun 2004)

Hallo Leute,

ich habe da mal eine Frage bezüglich der Typumwandlung. Und zwar will ich, dass wenn ich ein Feld ("Fahrleistung" vom Typ int)leer lasse und nichts angebe, soll als Fehlermeldung stehen: "Bitte Motorleistung eingeben!" bzw. "Bitte Zahl eingeben!". In meiner Fachkonzeptklasse habe ich folgenden Quellcode geschrieben:

```
public void pruefen()throws Exception
{
    if(marke== null)
    {
            throw new Exception("Marke fehlt!");
    }
    if(marke.equals(""))
    {
            throw new Exception("Marke fehlt!");
    }

    if( String.valueOf(fahrleistung).equals("") )
    {
           throw new Exception("Fahrleistung fehlt!");
    }
    if ( String.valueOf(fahrleistung) == null)
    {
        throw new Exception("Fahrleistung fehlt!");
    }
```
Es kompiliert zwar, jedoch wird es in der GUI Klasse nicht übernommen. Bei dem Attribut marke (string) wird die Fehlermeldung richtig ausgegeben. Aber bei dem Attribut fahrleistung(int) wird nicht die obige Fehlermeldung ausgegeben, sondern: 
	
	
	
	





```
For input String:""
```

dann habe ich es mal mit folgender Umwandlung versucht, weil ich glaube, meine Umwandlungsmethode ist nicht richtig.

```
if(String.valueOf(fahrleistung).equals(""))
    {
            throw new Exception("Bitte Leistung angeben!");
    }
     else 
    {	
            try 
            {
    	if(Integer.toString(fahrleistung) == null)
    	throw new NumberFormatException();
            }
            catch(NumberFormatException nfe)
           {
                throw new Exception("Bitte Leistung korrekt angeben!");
            }
   }
```
Bei dieser Umwandlung funktioniert die Fehlermeldung Ausgabe auch nicht.
Meine Frage nun:
- Ist beim ersten Code die Umwandlung überhaupt zulässig? D.h. kann man das in einen if-Block bzw. Exception Block hineinschreiben? Oder muss man den Int Typ anders umwandeln?
- Wäre die zweite Umwandlung richtig? Oder liegt es an meinem GUI?

Vielen Dank im Voraus für eure Mühe!!!


----------



## pfuschi (11. Jun 2004)

Ein Integer wird von mir aus gesehen mit 0 initialisiert und nicht mit Null.
Deshalb müsstest du nach 0 abfragen.


----------



## Beni (11. Jun 2004)

@Charly
Danke für deinen Kommentar, gelöscht...


----------



## VanillaSky (11. Jun 2004)

Also wenn ich alles mit Null initialisiere, kommt folgende Fehlermeldung

```
Fahrzeug.java:511: operator == cannot be applied to java.lang.String,int
			if(marke== 0)
```


----------



## pfuschi (11. Jun 2004)

Die Marke lässt du wie du Sie hast. 

Bei fahrleistung machst du if (fahrleistung==0). Dann sollt es gehen.

Falls du aber den Wert 0 auch als leistung zulassen möchtest, würde ich bei der initialisierung der fahrleistung folgendes schreiben:

int fahrleistung = -1;

Und dann bei der Abfrage if (fahrleistung==-1)

So sollte es dann gehen.


----------

