how convert char int java
Σε αυτό το σεμινάριο θα μάθουμε τους διαφορετικούς τρόπους για τη μετατροπή τιμών πρωτόγονων τύπων δεδομένων char σε int στην Java μαζί με τις συχνές ερωτήσεις και παραδείγματα:
Θα καλύψουμε τη χρήση των ακόλουθων μεθόδων που παρέχονται από διαφορετικές τάξεις Java για τη μετατροπή χαρακτήρα σε int:
- Σιωπηρή μετάδοση τύπου (λήψη τιμών ASCII)
- getNumericValue ()
- parseInt () με String.valueOf ()
- Αφαίρεση '0'
=> Δείτε εδώ για να δείτε A-Z Of Java Training Tutorials
Τι θα μάθετε:
Μετατροπή Char σε int στην Ιάβα
Η Java έχει πρωτόγονους τύπους δεδομένων όπως int, char, long, float, κ.λπ. Σε ορισμένα σενάρια, απαιτείται η εκτέλεση λειτουργιών σε αριθμητικές τιμές, όπου οι μεταβλητές τιμές καθορίζονται στον τύπο δεδομένων του char.
Σε τέτοιες περιπτώσεις, πρέπει πρώτα να μετατρέψουμε αυτές τις τιμές χαρακτήρων σε αριθμητικές τιμές, δηλαδή τιμές int και, στη συνέχεια, να εκτελέσουμε τις επιθυμητές ενέργειες, υπολογισμούς σε αυτές.
Για παράδειγμα, Σε ορισμένα συστήματα λογισμικού, ορισμένες λειτουργίες πρέπει να εκτελεστούν ή ορισμένες αποφάσεις πρέπει να ληφθούν με βάση τις αξιολογήσεις πελατών που λαμβάνονται στη φόρμα ανατροφοδότησης πελατών που έρχεται ως τύπος δεδομένων χαρακτήρων.
Σε τέτοιες περιπτώσεις, αυτές οι τιμές πρέπει πρώτα να μετατραπούν σε τύπο δεδομένων int για να εκτελέσουν περαιτέρω αριθμητικές λειτουργίες σε αυτές τις τιμές. Η Java παρέχει διάφορες μεθόδους για τη μετατροπή χαρακτήρα σε τιμή int. Ας δούμε λεπτομερώς αυτές τις μεθόδους.
# 1) Χρήση έμμεσου τύπου Cast, δηλαδή λήψη τιμής ASCII του χαρακτήρα
Στην Java, εάν εκχωρήσετε μια τιμή μικρότερου τύπου δεδομένων σε μια μεταβλητή της συμβατής μεταβλητής μεγαλύτερου τύπου δεδομένων, τότε η τιμή προωθεί αυτόματα, δηλ. Παίρνει σιωπηρά το τυπογραφικό σε μια μεταβλητή του μεγαλύτερου τύπου δεδομένων.
Για παράδειγμα, εάν αντιστοιχίσουμε μια μεταβλητή τύπου int σε μια μεταβλητή τύπου long, τότε η τιμή int παίρνει αυτόματα το typecast σε μεγάλο τύπο δεδομένων.
Η σιωπηρή μετάδοση τύπου συμβαίνει και για τη μεταβλητή τύπου δεδομένων 'char', δηλαδή όταν αντιστοιχίζουμε την ακόλουθη τιμή μεταβλητής char στη μεταβλητή τύπου 'int', τότε η τιμή μεταβλητής char μετατρέπεται αυτόματα σε int από τον μεταγλωττιστή.
Για παράδειγμα,
char a = «1»;
int b = α;
Εδώ, το char ‘a’ μεταφέρεται σιωπηρά στον τυποποιημένο τύπο δεδομένων.
Εάν εκτυπώσουμε την τιμή του 'b', τότε θα δείτε τις εκτυπώσεις της κονσόλας '49'. Αυτό συμβαίνει επειδή όταν αντιστοιχίζουμε την τιμή μεταβλητής char 'a' στη μεταβλητή int 'b', στην πραγματικότητα ανακτούμε την τιμή ASCII του '1' που είναι '49'.
Στο ακόλουθο δείγμα προγράμματος Java, ας δούμε πώς να μετατρέψετε το χαρακτήρα σε int μέσω της σιωπηρής τυποποίησης, δηλαδή να λαμβάνουμε την τιμή ASCII της μεταβλητής char.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using Implicit type casting i.e. ASCII values * * @author * */ public class CharIntDemo1 { public static void main(String() args) { // Assign character 'P' to char variable char1 char char1 = 'P'; // Assign character 'p' to char variable char2 char char2 = 'p'; // Assign character '2' to char variable char3 char char3 = '2'; // Assign character '@' to char variable char4 char char4 = '@'; // Assign character char1 to int variable int1 int int1 = char1; // Assign character char2 to int variable int2 int int2 = char2; // Assign character char3 to int variable int3 int int3 = char3; // Assign character char2 to int variable int4 int int4 = char4; //print ASCII int value of char System.out.println('ASCII value of '+char1+' -->'+int1); System.out.println('ASCII value of '+char2+' -->'+int2); System.out.println('ASCII value of '+char3+' -->'+int3); System.out.println('ASCII value of '+char4+' -->'+int4); } }
Εδώ είναι το πρόγραμμα Έξοδος:
Τιμή ASCII P -> 80
Τιμή ASCII p -> 112
Τιμή ASCII 2 -> 50
Τιμή ASCII @ -> 64
Στο παραπάνω πρόγραμμα, μπορούμε να δούμε τις τιμές ASCII διαφορετικών τιμών μεταβλητών char ως εξής:
Τιμή ASCII P -> 80
Τιμή ASCII p -> 112
Η διαφορά στις τιμές για «P» και «p» είναι επειδή οι τιμές ASCII είναι διαφορετικές για κεφαλαία και μικρά γράμματα.
Παρομοίως, λαμβάνουμε τιμές ASCII για αριθμητικές τιμές και ειδικό χαρακτήρα καθώς και ως εξής:
Τιμή ASCII 2 -> 50
Τιμή ASCII @ -> 64
# 2) Χρήση της μεθόδου Character.getNumericValue ()
Η κλάση χαρακτήρων έχει στατικές μεθόδους υπερφόρτωσης του getNumericValue (). Αυτή η μέθοδος επιστρέφει μια τιμή του τύπου δεδομένων που αντιπροσωπεύεται από έναν καθορισμένο χαρακτήρα Unicode.
java copy 2d array σε άλλο πίνακα
Ακολουθεί η υπογραφή μεθόδου της μεθόδου getNumericValue () για τον τύπο δεδομένων char:
δημόσια στατική int getNumericValue (char ch)
Αυτή η στατική μέθοδος λαμβάνει ένα όρισμα τύπου δεδομένων char και επιστρέφει την τιμή int τύπου τύπου που αντιπροσωπεύει το όρισμα «ch».
Για παράδειγμα, ο χαρακτήρας ' u216C' επιστρέφει έναν ακέραιο με τιμή 50.
Παράμετροι:
ch: Αυτός είναι ένας χαρακτήρας που πρέπει να μετατραπεί σε int.
Επιστροφές:
Αυτή η μέθοδος επιστρέφει την αριθμητική τιμή του «ch», ως μη αρνητική τιμή του τύπου δεδομένων int. Αυτή η μέθοδος επιστρέφει -2 εάν το «ch» έχει αριθμητική τιμή που δεν είναι μη αρνητικός ακέραιος. Επιστρέφει -1 εάν το 'ch' δεν έχει αριθμητική τιμή.
Ας κατανοήσουμε τη χρήση αυτής της μεθόδου Character.getNumericValue () για τη μετατροπή χαρακτήρα σε τιμή int.
Ας εξετάσουμε το σενάριο όπου ένα από τα συστήματα λογισμικού της τράπεζας, όπου το φύλο καθορίζεται στον τύπο δεδομένων «char» και με βάση τον κωδικό φύλου, πρέπει να ληφθεί κάποια απόφαση όπως η εκχώρηση επιτοκίου.
Για αυτό, ο κώδικας φύλου πρέπει να μετατραπεί από char σε int τύπο δεδομένων. Αυτή η μετατροπή γίνεται χρησιμοποιώντας τη μέθοδο Character.getNumericValue () στο παρακάτω δείγμα προγράμματος.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using Character.getNumericValue() * * @author * */ public class CharIntDemo2 { public static void main(String() args) { // Assign character '1' to char variable char1 char gender = '1'; //Send gender as an argument to getNumericValue() method // to parse it to int value int genderCode = Character.getNumericValue(gender); // Expected to print int value 1 System.out.println('genderCode--->'+genderCode); double interestRate = 6.50; double specialInterestRate = 7; switch (genderCode) { case 0 ://genderCode 0 is for Gender Male System.out.println('Welcome ,our bank is offering attractive interest rate on Fixed deposits :'+ interestRate +'%'); break; case 1 ://genderCode 1 is for Gender Female System.out.println(' Welcome, our bank is offering special interest rate on Fixed deposits '+ 'for our women customers:'+specialInterestRate+'% .'+'
'+' Hurry up, this offer is valid for limited period only.'); break; default : System.out.println('Please enter valid gender code '); } } }
Εδώ είναι το πρόγραμμα Έξοδος:
genderCode—> 1
Καλώς ήλθατε, η τράπεζά μας προσφέρει ειδικό επιτόκιο σε πάγιες καταθέσεις για τις γυναίκες πελάτες μας: 7,0%.
Βιαστείτε, αυτή η προσφορά ισχύει μόνο για περιορισμένο χρονικό διάστημα.
Έτσι, στο παραπάνω πρόγραμμα, μετατρέπουμε τη μεταβλητή τιμή φύλου char σε int value για να πάρουμε την τιμή int στο μεταβλητό genderCode.
απανθρακώνω φύλο = «1»;
int genderCode = Χαρακτήρας. getNumericValue (γένος);
Έτσι, όταν εκτυπώνουμε στην κονσόλα, System. έξω .println ('genderCode ->' + genderCode); τότε βλέπουμε την τιμή int στην κονσόλα όπως παρακάτω:
genderCode—> 1
Η ίδια μεταβλητή τιμή μεταβιβάζεται για εναλλαγή βρόχου πεζών-κεφαλαίων διακόπτης (genderCode) για περαιτέρω λήψη αποφάσεων.
# 3) Χρήση της μεθόδου Integer.parseInt () και String.ValueOf ()
Αυτή η στατική μέθοδος parseInt () παρέχεται από την κατηγορία Integer class wrapper.
Εδώ είναι η μέθοδος υπογραφής του Integer.parseInt () :
δημόσιο στατικό int parseInt (String str) ρίχνει NumberFormatException
Αυτή η μέθοδος αναλύει το όρισμα String, θεωρεί το String ως υπογεγραμμένο δεκαδικό ακέραιο. Όλοι οι χαρακτήρες του ορίσματος συμβολοσειράς πρέπει να είναι δεκαδικά ψηφία. Η μόνη εξαίρεση είναι ότι ο πρώτος χαρακτήρας επιτρέπεται να είναι ένα σύμβολο ASCII μείον «-» και το σύμβολο «+» για ένδειξη αρνητικής και θετικής τιμής αντίστοιχα.
Εδώ, η παράμετρος «str» είναι μια συμβολοσειρά που έχει αναλυθεί η παράσταση int και επιστρέφει την ακέραια τιμή που αντιπροσωπεύεται από το όρισμα στο δεκαδικό. Όταν η συμβολοσειρά δεν περιέχει έναν αναλύσιμο ακέραιο, τότε η μέθοδος ρίχνει μια εξαίρεση NumberFormatException
Όπως φαίνεται στη μέθοδο υπογραφής για parseInt ( Σειρά str), το όρισμα που πρέπει να περάσει στη μέθοδο parseInt () είναι τύπου δεδομένων String. Επομένως, απαιτείται να μετατρέψετε μια τιμή char σε String πρώτα και μετά να μεταβιβάσετε αυτήν την τιμή String στη μέθοδο parseInt (). Για αυτό χρησιμοποιείται η μέθοδος String.valueOf ().
Το valueOf () είναι μια στατική μέθοδος υπερφόρτωσης της κλάσης String που χρησιμοποιείται για τη μετατροπή ορισμάτων των πρωτόγονων τύπων δεδομένων όπως int, float σε String data type.
δημόσια στατική τιμή συμβολοσειράςOf (int i)
Αυτή η στατική μέθοδος λαμβάνει ένα όρισμα τύπου δεδομένων int και επιστρέφει την παράσταση συμβολοσειράς του ορίσματος int.
Παράμετροι:
i: Αυτός είναι ένας ακέραιος.
Επιστροφές:
Η παράσταση συμβολοσειράς του ορίσματος int.
Έτσι, χρησιμοποιούμε έναν συνδυασμό μεθόδου Integer.parseInt () και String.valueOf (). Ας δούμε τη χρήση αυτών των μεθόδων στο ακόλουθο δείγμα προγράμματος. Αυτό το δείγμα προγράμματος (1) Πρώτα μετατρέπει την τιμή αξιολόγησης πελατών του τύπου δεδομένων χαρακτήρων σε ακέραιο και (2) στη συνέχεια εκτυπώνει το κατάλληλο μήνυμα στην κονσόλα χρησιμοποιώντας τη δήλωση if-else.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using Integer.parseInt() and String.valueOf() methods * * @author * */ public class CharIntDemo3 { public static void main(String() args) { // Assign character '7' to char variable customerRatingsCode char customerRatingsCode = '7'; //Send customerRatingsCode as an argument to String.valueOf method //to parse it to String value String customerRatingsStr = String.valueOf(customerRatingsCode); System.out.println('customerRatings String value --->'+customerRatingsStr); // Expected to print String value 7 //Send customerRatingsStr as an argument to Integer.parseInt method //to parse it to int value int customerRatings = Integer.parseInt(customerRatingsStr); System.out.println('customerRatings int value --->'+customerRatings); // Expected to print int value 7 if (customerRatings>=7) { System.out.println('Congratulations! Our customer is very happy with our services.'); }else if (customerRatings>=5) { System.out.println('Good , Our customer is satisfied with our services.'); }else if(customerRatings>=0) { System.out.println('Well, you really need to work hard to make our customers happy with our services.'); }else { System.out.println('Please enter valid ratings value.'); } } }
Εδώ είναι το πρόγραμμα Έξοδος:
τιμή συμβολοσειράς CustomerRatings -> 7
τιμή int πελάτη -> 7
Συγχαρητήρια! Ο πελάτης μας είναι πολύ ευχαριστημένος με τις υπηρεσίες μας.
Στο παραπάνω δείγμα κώδικα, χρησιμοποιήσαμε τη μέθοδο String.valueOf () για να μετατρέψουμε χαρακτήρα σε τιμή τύπου String.
char customerRatingsCode = '7'; String customerRatingsStr = String.valueOf(customerRatingsCode);
Τώρα, αυτή η τιμή συμβολοσειράς μετατρέπεται σε τύπο δεδομένων int χρησιμοποιώντας τη μέθοδο Integer.parseInt () περνώντας customerRatingsStr ως επιχείρημα.
int customerRatings = Integer.parseInt(customerRatingsStr); System.out.println('customerRatings int value --->'+customerRatings); // Expected to print int value 7
Αυτή η τιμή int Βαθμολογία πελάτη χρησιμοποιείται περαιτέρω στη δήλωση if-else για σύγκριση και εκτύπωση του απαιτούμενου μηνύματος στην κονσόλα.
# 4) Μετατροπή Char σε int Java αφαιρώντας το '0'
Έχουμε δει τη μετατροπή χαρακτήρα σε int χρησιμοποιώντας σιωπηρή πληκτρολόγηση. Αυτό επιστρέφει την τιμή ASCII του χαρακτήρα. Π.χ. Η τιμή ASCII του 'P' επιστρέφει 80 και η τιμή ASCII του '2' επιστρέφει 50.
Ωστόσο, για να ανακτήσετε την τιμή int για το «2» ως 2, πρέπει να αφαιρεθεί η τιμή του χαρακτήρα ASCII του «0» από τον χαρακτήρα. Π.χ. Για να ανακτήσετε το int 2 από τον χαρακτήρα «2»,
ποιο είναι το καλύτερο πρόγραμμα λήψης μουσικής για τηλέφωνο Android
int intValue = '2'- '0'; System.out.println('intValue?”+intValue); This will print intValue->2.
Σημείωση :Αυτό είναι χρήσιμο για τη λήψη τιμών int για χαρακτήρες αριθμητικής τιμής, δηλ. 1, 2, κ.λπ., και όχι χρήσιμη με τιμές κειμένου όπως «a», «B» κ.λπ. καθώς θα επιστρέψει απλώς τη διαφορά μεταξύ των τιμών ASCII του «0 'και αυτός ο χαρακτήρας.
Ας ρίξουμε μια ματιά στο δείγμα προγράμματος για να χρησιμοποιήσουμε αυτήν τη μέθοδο αφαίρεσης της τιμής ASCII του Zero, δηλαδή '0' από την τιμή χαρακτήρα ASCII.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert char to int Java program * using ASCII values by subtracting ASCII value of '0'from ASCII value of char * * @author * */ public class CharIntDemo4 { public static void main(String() args) { // Assign character '0' to char variable char1 char char1 = '0'; // Assign character '1' to char variable char2 char char2 = '1'; // Assign character '7' to char variable char3 char char3 = '7'; // Assign character 'a' to char variable char4 char char4 = 'a'; //Get ASCII value of '0' int int0 = char1; System.out.println('ASCII value of 0 --->'+int0); int0 = char2; System.out.println('ASCII value of 1 --->'+int0); // Get int value by finding the difference of the ASCII value of char1 and ASCII value of 0. int int1 = char1 - '0'; // Get int value by finding the difference of the ASCII value of char2 and ASCII value of 0. int int2 = char2 - '0'; // Get int value by finding the difference of the ASCII value of char3 and ASCII value of 0. int int3 = char3 - '0'; // Get int value by finding the difference of the ASCII value of char4 and ASCII value of 0. int int4 = char4 - '0'; //print ASCII int value of char System.out.println('Integer value of '+char1+' -->'+int1); System.out.println('Integer value of '+char2+' -->'+int2); System.out.println('Integer value of '+char3+' -->'+int3); System.out.println('Integer value of '+char4+' -->'+int4); } }
Εδώ είναι το πρόγραμμα Έξοδος:
Τιμή ASCII 0 -> 48
Τιμή ASCII 1 -> 49
Ακεραία τιμή 0 -> 0
Ακεραία τιμή 1 -> 1
Ακεραία τιμή 7 -> 7
Ακεραία τιμή a -> 49
Στο παραπάνω πρόγραμμα, αν αντιστοιχίσουμε char '0' και '1' στην τιμή τύπου δεδομένων int, θα λάβουμε τιμές ASCII αυτών των χαρακτήρων λόγω της σιωπηρής μετατροπής. Έτσι, όταν εκτυπώνουμε αυτές τις τιμές όπως φαίνεται στις παρακάτω δηλώσεις:
int int0 = char1; System.out.println('ASCII value of 0 --->'+int0); int0 = char2; System.out.println('ASCII value of 1 --->'+int0);
Θα λάβουμε την παραγωγή ως:
Τιμή ASCII 0 -> 48
Τιμή ASCII 1 -> 49
Έτσι, για να λάβουμε μια ακέραια τιμή που αντιπροσωπεύει την ίδια τιμή με αυτή του char, αφαιρούμε την τιμή ASCII του '0' από τους χαρακτήρες που αντιπροσωπεύουν αριθμητικές τιμές.
int int2 = char2 - '0'; .
Εδώ, αφαιρούμε τις τιμές ASCII του '0' από την τιμή ASCII '1'.
49-48 = 1. Ως εκ τούτου, όταν εκτυπώνουμε στην κονσόλα char2
System.out.println ('Ακεραία τιμή' + char2 + '->' + int2);
Παίρνουμε την παραγωγή ως:
Ακεραία τιμή 1 -> 1
Με αυτό, έχουμε καλύψει τους διάφορους τρόπους μετατροπής του χαρακτήρα Java σε ακέραια τιμή με τη βοήθεια δειγμάτων προγραμμάτων. Έτσι, για να μετατρέψετε το χαρακτήρα σε int στην Java, οποιαδήποτε από τις μεθόδους που καλύπτονται στα παραπάνω δείγματα κωδικών μπορεί να χρησιμοποιηθεί στο πρόγραμμα Java.
Τώρα, ας ρίξουμε μια ματιά σε μερικές από τις συχνές ερωτήσεις σχετικά με τον χαρακτήρα Java σε μετατροπή int.
Συχνές ερωτήσεις σχετικά με το Char To Int Java
Q # 1) Πώς μπορώ να μετατρέψω ένα char σε int;
Απάντηση:
Στην Java, το char μπορεί να μετατραπεί σε τιμή int χρησιμοποιώντας τις ακόλουθες μεθόδους:
java συνέντευξη ερώτηση και απαντήσεις για τους νεότερους
- Σιωπηρή μετάδοση τύπου (λήψη τιμών ASCII)
- Character.getNumericValue ()
- Integer.parseInt () με String.valueOf ()
- Αφαίρεση '0'
Q # 2) Τι είναι το char στην Java;
Απάντηση: Ο τύπος δεδομένων char είναι ένας πρωτόγονος τύπος δεδομένων Java που έχει έναν μοναδικό χαρακτήρα Unicode 16-bit. Η τιμή εκχωρείται ως ένας χαρακτήρας που περικλείεται με ένα μόνο απόσπασμα ''. Για παράδειγμα, char a = ‘A’ ή char a = ‘1’ κ.λπ.
Q # 3) Πώς ξεκινάτε ένα char στην Java;
Απάντηση: Η μεταβλητή char αρχικοποιείται με την εκχώρηση ενός μεμονωμένου χαρακτήρα που περικλείεται σε μεμονωμένα εισαγωγικά, δηλαδή. Για παράδειγμα, char x = ‘b’, char x = ‘@’, char x = ‘3’ κ.λπ.
Q # 4) Ποια είναι η τιμή int του char A;
Απάντηση: Εάν ο χαρακτήρας «A» έχει αντιστοιχιστεί στη μεταβλητή int, τότε ο char θα προωθηθεί σιωπηρά στο int και εάν η τιμή εκτυπωθεί, θα επιστρέψει την τιμή ASCII του χαρακτήρα «A» που είναι 65
Για παράδειγμα,
int x= 'A'; System.out.println(x);
Έτσι, θα εκτυπωθεί 65 στην κονσόλα.
συμπέρασμα
Σε αυτό το σεμινάριο, έχουμε δει τους ακόλουθους τρόπους για τη μετατροπή τιμών του Java τύπου δεδομένων char σε int.
- Σιωπηρή μετάδοση τύπου (λήψη τιμών ASCII)
- Character.getNumericValue ()
- Integer.parseInt () με String.valueOf ()
- Αφαίρεση '0'
Έχουμε καλύψει κάθε έναν από αυτούς τους τρόπους με λεπτομέρεια και αποδείξαμε τη χρήση κάθε μεθόδου με τη βοήθεια ενός δείγματος προγράμματος Java.
=> Ελέγξτε ΟΛΑ τα Εκπαιδευτικά Java εδώ
Συνιστώμενη ανάγνωση
- Java Integer και Java BigInteger Class με παραδείγματα
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- TreeMap In Java - Tutorial with Java TreeMap Παραδείγματα
- Πώς να μετατρέψετε τη συμβολοσειρά Java σε Int - Tutorial με παραδείγματα
- Java Float Tutorial με παραδείγματα προγραμματισμού
- Java Break Statement - Εκπαιδευτικό πρόγραμμα με παραδείγματα
- Java Enum: Java Enumeration Tutorial με παραδείγματα
- Java String length () Μέθοδος με παραδείγματα