Če želite v Javi pre­tvo­ri­ti niz v int, imate na voljo dve preprosti možnosti – parseInt() in valueOf(). Vendar obe možnosti delujeta le, če niz vsebuje izključno cela števila in ne presega vre­dno­stne­ga obsega po­dat­kov­ne­ga tipa int.

Kaj je pretvorba niza v celo število v Javi?

Java nizi so verige, ki lahko vsebujejo črke, številke in posebne znake. V pro­gram­skem jeziku Java se števke v obliki celih vrednosti lahko shranijo kot int. Če imate niz, ki vsebuje samo cela števila, ga lahko pre­tvo­ri­te v Java primitiv int, ki pomeni celo število. Medtem ko obstaja 5 različnih načinov za pretvorbo Java int v niz, obstajata le 2 glavna načina za pretvorbo Java niza v int. To sta Integer parseInt() in Integer.valueOf(). Spodaj bomo s prak­tič­ni­mi primeri pojasnili, kako delujejo te metode.

Note

Upo­šte­vaj­te, da bo ta pretvorba delovala le, če je zadevno število med -2147483648 in 2147483647. Številke, ki so večje ali manjše, ni mogoče pred­sta­vi­ti z uporabo po­dat­kov­ne­ga tipa int.

Kako upo­ra­blja­ti Integer.parseInt()

parseInt() je statična metoda, ki pripada razredu Integer in vrne numerično vrednost kom­ple­ksne­ga po­dat­kov­ne­ga tipa string v obliki pri­mi­tiv­ne­ga po­dat­kov­ne­ga tipa int. Njena sintaksa je naslednja:

static int parseInt(String s)
java

Poglejmo primer. Najprej bomo ini­ci­a­li­zi­ra­li niz, ki vsebuje vrednost „7312“ in nič drugega. Nato bomo ta Java niz pre­tvo­ri­li v int z uporabo parseInt() in na koncu izpisali rezultat z uporabo Java ukaza System.out.println. Koda bo izgledala takole:

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);
	}
}
java

Tukaj je izhod:

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);
	}
}
java

Tukaj je sporočilo o napaki:

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)
java

Kako upo­ra­blja­ti Integer.valueOf()

Integer.valueOf()še ena metoda iz razreda Integer. Izpiše decimalno in­ter­pre­ta­ci­jo niza znakov in je zato uporabna tudi za pretvorbo niza znakov Java v celo število. Njena sintaksa je naslednja:

static int valueOf(int a)
java

Poglejmo preprost primer:

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);
	}
}
java

Ponovno boste dobili naslednji rezultat:

The numerical value of the string is: 7312
java

Če niz vsebuje karkoli razen celega števila, bomo dobili isto sporočilo o napaki kot zgoraj.

Go to Main Menu