String cannot be converted to int und umgekehr, verstehe aber nicht warum?
Hallo,
ich habe einen kleinen Code programmiert zum Thema Methoden (siehe Bild). Dort möchte ich der Methode eine Zahl, also int-wert..., übergeben. DIeser soll dann in einen String umgewandelt werden, damit ich dort die erste Stelle der Zahl "abschneiden" kann. Danach möchte ich den String wieder in einen Integerwert umwandeln und diesen dann zurück an den Methodenaufruf schicken, damit dieser dann mit S.O.P ausgegeben wird.
Nun der Fehler: Wenn ich das Programm ausführen möchte tauchen zwei Fehler auf: Einmal in "String numstring = Integer.parseInt(numint);" = in cannot be converted to string und bei "int numint2 = Integer.toString(numstring2);" = string cannot be converted to int. Allerdings möchte ich mit diesen Befehlen ja int in String umwandeln und umgekehrt und deshalb verstehe ich den Fehler nicht.
Ich hoffe mir kann jmd helfen D:
3 Antworten
Naja, Du machst es halt genau falsch herum - die Methodennamen sollten darauf ja bereits einen Hinweis gegeben haben.
Integer.parseInt nimmt einen STRING und macht daraus - wenn möglich - einen INT.
intvariable.toString() macht aus dem INT einen STRING. Ebenso kannst Du String.valueOf(intvariable) verwenden.
Somit müsste Dein Code lauten:
String numString = numint.toString();
// Oder
// String numString = String.valueOf(numint);
String numString2 = numString.substring(1);
int numInt2 = Integer.parseInt(numString2);
return numInt2;
Boa coool, es klappt. Habs wirklich nur falsch rum benutzt, danke :)
Du nutzt die Methoden falschherum.
int numint = Ingeger.parseInt(numstring2);
String numstring = String.valueOf(numint);
wäre korrekt
Was ist das Ergebnis, dass Du erwartest? Das kann man nicht konvertieren.
Ist wie wenn ich das Wort "Test" in Zahlen ausdrücken will. Welche Zahl soll das sein?
Es dürfte ja wohl klar sein, dass das nur mit solchen Strings funktioniert, die sich auch in ints wandeln lassen...
Und selbstverständlich gehört es zum alltäglichen Handwerkszeug eines jeden Entwicklers, Strings in Zahlen und wieder zurück zu konvertieren.
Nein, Du übergibst 1234567899 als int an die Methode, denn Dein Parameter ist vom Typ int. Und das kann sowohl in einen String, als dann auch rückwärts wieder in einen int gewandelt werden.
Da oben steht ja "123456678" als String und das ist ne Zahl, kann also auch zu einem int gemacht werden ;D