Hvordan konvertere en streng til int i Java
Hvis du vil konvertere en streng til int i Java, har du to enkle alternativer – parseInt() og valueOf(). Begge disse alternativene fungerer imidlertid bare hvis strengen utelukkende inneholder hele tall og ikke overskrider verdibereik for datatypen int.
Hva er en streng til int-konvertering i Java?
Java-strenger er sammenkoblinger som kan inneholde tegn, tall og spesialtegn. I programmeringsspråket Java kan tall i form av heltall lagres som int. Hvis du har en streng som bare inneholder heltall, kan du konvertere den til Java-primitivet int, som står for integer (heltall). Mens det finnes fem forskjellige måter å konvertere en Java int til en streng på, er det bare to hovedmåter å konvertere en Java-streng til en int på. De er Integer parseInt() og Integer.valueOf(). Nedenfor forklarer vi hvordan disse metodene fungerer ved hjelp av praktiske eksempler.
Merk at denne konverteringen bare fungerer hvis tallet i spørsmålet ligger mellom -2147483648 og 2147483647. Tall som er større eller mindre kan ikke representeres ved hjelp av datatypen int.
Hvordan bruke Integer.parseInt()
parseInt() er en statisk metode som tilhører klassen Integer og returnerer den numeriske verdien av den komplekse datatypen string i form av den primitive datatypen int. Syntaksen ser slik ut:
static int parseInt(String s)javaLa oss se på et eksempel. Først initialiserer vi en streng som inneholder verdien «7312» og ingenting annet. Deretter konverterer vi den Java-strengen til et int ved hjelp av parseInt(), og til slutt skriver vi ut resultatet ved hjelp av Java-kommandoen System.out.println. Koden vil se slik ut:
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 feilmeldingen:
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)javaHvordan bruke Integer.valueOf()
Integer.valueOf()en annen metode fra Integer-klassen. Den gir ut den desimale tolkningen av et strengobjekt og er dermed også nyttig for å konvertere en Java-streng til et int. Syntaksen ser slik ut:
static int valueOf(int a)javaLa oss se på et enkelt 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 igjen følgende resultat:
The numerical value of the string is: 7312javaHvis strengen inneholder noe annet enn et helt tall, får vi samme feilmelding som ovenfor.