Αν θέλετε να μετατρέψετε μια συμβολοσειρά σε int στη Java, έχετε δύο απλές επιλογές – parseInt() και valueOf(). Ωστόσο, και οι δύο αυτές επιλογές λειτουργούν μόνο αν η συμβολοσειρά περιέχει αποκλειστικά ακέραιους αριθμούς και δεν υπερβαίνει το εύρος τιμών του τύπου δεδομένων int.

Τι είναι η μετατροπή συμβολοσειράς σε ακέραιο αριθμό στη Java;

Οι συμβολοσειρές Java είναι συνενώσεις που μπορούν να περιέχουν χαρακτήρες, ψηφία και ειδικούς χαρακτήρες. Στη γλώσσα προγραμματισμού Java, τα ψηφία με τη μορφή ακέραιων τιμών μπορούν να αποθηκευτούν ως int. Εάν έχετε μια συμβολοσειρά που περιέχει μόνο ακέραιους αριθμούς, μπορείτε να τη μετατρέψετε σε Java primitive int, που σημαίνει ακέραιος αριθμός. Ενώ υπάρχουν 5 διαφορετικοί τρόποι για να μετατρέψετε ένα Java int σε συμβολοσειρά, υπάρχουν μόνο 2 βασικοί τρόποι για να μετατρέψετε μια συμβολοσειρά Java σε int. Είναι Integer parseInt() και Integer.valueOf(). Παρακάτω θα εξηγήσουμε πώς λειτουργούν αυτές οι μέθοδοι χρησιμοποιώντας πρακτικά παραδείγματα.

Note

Σημειώστε ότι αυτή η μετατροπή θα λειτουργήσει μόνο αν ο αριθμός βρίσκεται μεταξύ -2147483648 και 2147483647. Αριθμοί μεγαλύτεροι ή μικρότεροι δεν μπορούν να αναπαρασταθούν χρησιμοποιώντας τον τύπο δεδομένων int.

Πώς να χρησιμοποιήσετε Integer.parseInt()

parseInt() είναι μια στατική μέθοδος που ανήκει στην κλάση Integer και επιστρέφει την αριθμητική τιμή του σύνθετου τύπου δεδομένων string με τη μορφή του πρωτόγονου τύπου δεδομένων int. Η σύνταξή της έχει ως εξής:

static int parseInt(String s)
java

Ας δούμε ένα παράδειγμα. Πρώτα θα αρχικοποιήσουμε μια συμβολοσειρά που περιέχει την τιμή «7312» και τίποτα άλλο. Στη συνέχεια, θα μετατρέψουμε αυτή τη συμβολοσειρά Java σε έναν ακέραιο αριθμό χρησιμοποιώντας parseInt() και, τέλος, θα εμφανίσουμε το αποτέλεσμα χρησιμοποιώντας την εντολή Java System.out.println. Ο κώδικας θα έχει την ακόλουθη μορφή:

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

Ακολουθεί το αποτέλεσμα:

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

Αυτό είναι το μήνυμα σφάλματος:

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

Πώς να χρησιμοποιήσετε Integer.valueOf()

Integer.valueOf()μια άλλη μέθοδος από την κλάση Integer. Εμφανίζει την δεκαδική ερμηνεία ενός αντικειμένου string και είναι επομένως χρήσιμο για τη μετατροπή ενός string Java σε int. Η σύνταξή του έχει ως εξής:

static int valueOf(int a)
java

Ας δούμε ένα απλό παράδειγμα:

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

Θα λάβετε και πάλι το ακόλουθο αποτέλεσμα:

The numerical value of the string is: 7312
java

Εάν η συμβολοσειρά περιέχει οτιδήποτε εκτός από έναν ακέραιο αριθμό, θα λάβουμε το ίδιο μήνυμα σφάλματος όπως παραπάνω.

Go to Main Menu