String cannot be converted to int und umgekehr, verstehe aber nicht warum?

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;

Maik09890 
Beitragsersteller
 20.01.2021, 14:51

Boa coool, es klappt. Habs wirklich nur falsch rum benutzt, danke :)

Maik09890 
Beitragsersteller
 20.01.2021, 14:47

Okay danke, ich teste es mal kurz :D

Du nutzt die Methoden falschherum.


int numint = Ingeger.parseInt(numstring2);
String numstring = String.valueOf(numint);


wäre korrekt

Woher ich das weiß:Berufserfahrung – Java-Entwickler von Batch- und Webanwendungen

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?


ohwehohach  20.01.2021, 14:47

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.

Maik09890 
Beitragsersteller
 20.01.2021, 14:53

Da oben steht ja "123456678" als String und das ist ne Zahl, kann also auch zu einem int gemacht werden ;D

ohwehohach  20.01.2021, 14:59
@Maik09890

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.