Sådan konverteres en streng til int i Java
Hvis du vil konvertere en streng til int i Java, har du to enkle muligheder – parseInt() og valueOf(). Begge disse muligheder fungerer dog kun, hvis strengen udelukkende indeholder hele tal og ikke overskrider værdiområdet for datatypen int.
Hvad er en streng til int-konvertering i Java?
Java-strenge er sammenkædninger, der kan indeholde tegn, cifre og specialtegn. I programmeringssproget Java kan cifre i form af heltal gemmes som et int. Hvis du har en streng, der kun indeholder hele tal, kan du konvertere den til det primitive Java-type int, som står for heltal. Mens der er 5 forskellige måder at konvertere et Java-int til en streng, er der kun 2 hovedmåder at konvertere en Java-streng til et int. Det er Integer parseInt() og Integer.valueOf(). Nedenfor forklarer vi, hvordan disse metoder fungerer, ved hjælp af praktiske eksempler.
Bemærk, at denne konvertering kun fungerer, hvis det pågældende tal ligger mellem -2147483648 og 2147483647. Tal, der er større eller mindre, kan ikke repræsenteres ved hjælp af datatypen int.
Sådan bruges Integer.parseInt()
parseInt() er en statisk metode, der tilhører klassen Integer og returnerer den numeriske værdi af den komplekse datatype string i form af den primitive datatype int. Dens syntaks ser således ud:
static int parseInt(String s)javaLad os se på et eksempel. Først initialiserer vi en streng, der indeholder værdien ‘7312’ og intet andet. Derefter konverterer vi den Java-streng til et int ved hjælp af parseInt(), og til sidst udskriver vi resultatet ved hjælp af Java-kommandoen System.out.println. Koden ser således ud:
public class Main {
public static void main(String args[]) {
String str = "7312";
int number = Integer.parseInt(str);
System.out.println("The numerical value of the string is: " + number);
}
}javaHer er resultatet:
The numerical value of the string is: 7312
``
However, this only works if the string exclusively **contains whole numbers**. If it contains anything else, you’ll get an error message:
```java
public class Main {
public static void main(String args[]) {
String str = "The number is 7312";
int number = Integer.parseInt(str);
System.out.println("The number from the string is: " + number);
}
}javaHer er fejlmeddelelsen:
Exception in thread "main" java.lang.NumberFormatException: For input string: " The number is 7312"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:661)
at java.base/java.lang.Integer.parseInt(Integer.java:777)
at Main.main(Main.java:4)javaSådan bruges Integer.valueOf()
Integer.valueOf()en anden metode fra Integer-klassen. Den udgiver den decimale fortolkning af et strengobjekt og er derfor også nyttig til at konvertere en Java-streng til et int. Dens syntaks ser således ud:
static int valueOf(int a)javaLad os se på et simpelt eksempel:
public class Main {
public static void main(String args[]) {
String newString = "7312";
int parNumber = Integer.valueOf(newString);
System.out.println("The numerical value of the string is: " + parNumber);
}
}javaDu får igen følgende resultat:
The numerical value of the string is: 7312javaHvis strengen indeholder andet end et heltal, får vi den samme fejlmeddelelse som ovenfor.