c convert string int using parse
εφαρμογή κάρτας χρόνου για iPhone και Android
Εκμάθηση για το πώς να μετατρέψετε τη συμβολοσειρά σε Int σε C #. Θα μάθετε πολλές μεθόδους μετατροπής όπως Parse, TryParse & Convert βάσει των απαιτήσεων:
Οι περισσότεροι από εμάς βρισκόμαστε σε αυτήν την κατάσταση κάποτε, όταν πρέπει να μετατρέψουμε μια συμβολοσειρά σε ακέραιο τύπο δεδομένων.
Για παράδειγμα, ας πούμε ότι λαμβάνω μια συμβολοσειρά '99' από μια πηγή δεδομένων (από τη βάση δεδομένων, την εισαγωγή χρηστών κ.λπ.), αλλά την χρειαζόμαστε ως ακέραιος για την εκτέλεση ορισμένων υπολογισμών, εδώ, θα πρέπει πρώτα να την μετατρέψουμε σε ακέραιο πριν ξεκινήσουμε ορισμένες αριθμητικές πράξεις.
Υπάρχουν διάφοροι τρόποι για να το κάνετε αυτό, και ας ρίξουμε μια ματιά σε μερικές από τις ευρέως χρησιμοποιούμενες μεθόδους.
=> Δείτε την πλήρη σειρά C # Training εδώ
Τι θα μάθετε:
- Int.Parse Method
- System.Convert μέθοδος
- int.TryParse μέθοδος
- Μετατροπή μη αριθμητικής συμβολοσειράς σε ακέραιο
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Int.Parse Method
Η μέθοδος Int.Parse λειτουργεί σαν θαύματα εάν είστε βέβαιοι ότι η μετατροπή σας δεν θα προκαλέσει ποτέ σφάλμα. Αυτός είναι ένας από τους ευκολότερους και απλούστερους τρόπους για να μετατρέψετε μια συμβολοσειρά σε ακέραιο. Μπορεί να προκαλέσει σφάλμα εάν η μετατροπή δεν είναι επιτυχής.
Αυτή η μέθοδος χρησιμοποιείται κυρίως όταν έχετε ακέραιο με τη μορφή συμβολοσειράς. Για παράδειγμα, λαμβάνετε έναν αριθμό συμβολοσειράς από μια είσοδο χρήστη όπως '99'. Ας δοκιμάσουμε ένα απλό πρόγραμμα για να μετατρέψουμε αυτήν τη συμβολοσειρά σε ακέραιο.
Πρόγραμμα
Πρόγραμμα δημόσιας τάξης
{ public static void Main() { String str = '99'; int number = int.Parse(str); Console.WriteLine(number); } }
Παραγωγή
Το αποτέλεσμα του παραπάνω προγράμματος:
99
Εξήγηση
Το πρόγραμμα θα επιστρέψει την αριθμητική τιμή της συμβολοσειράς.
Το δύσκολο μέρος της χρήσης της μεθόδου int.Parse είναι το πρόβλημα της ρίψης σφάλματος εάν η συμβολοσειρά δεν είναι σε σωστή μορφή, δηλαδή εάν μια συμβολοσειρά περιέχει χαρακτήρες διαφορετικούς από τους αριθμούς.
Εάν υπάρχει άλλος χαρακτήρας εκτός από τον αριθμό, τότε αυτή η μέθοδος θα προκαλέσει το ακόλουθο σφάλμα:
“(System.FormatException: Input string was not in a correct format.)”
System.Convert μέθοδος
Ένας άλλος τρόπος για να μετατρέψετε μια συμβολοσειρά σε ακέραιο είναι χρησιμοποιώντας τη μέθοδο μετατροπής. Αυτή η μέθοδος δεν είναι τόσο απλή όσο η προηγούμενη μέθοδος, καθώς πρέπει να είμαστε έτοιμοι να χειριστούμε οποιαδήποτε εξαίρεση που μπορεί να προκύψει λόγω του προγράμματος που αλληλεπιδρά με εσφαλμένα δεδομένα.
Οι εξαιρέσεις μπορούν επίσης να καταναλώνουν πολλή μνήμη, επομένως δεν συνιστάται να συναντήσετε οποιαδήποτε επιθυμητή ή ανεπιθύμητη εξαίρεση κατά τη διάρκεια της ροής εκτέλεσης. Για παράδειγμα, Εάν συμβεί μια εξαίρεση σε έναν βρόχο, τότε θα καταναλώνεται πολύ μνήμη κατά τη ρίψη τους και ως εκ τούτου θα επιβραδύνει το πρόγραμμά σας.
Η χρήση της μεθόδου μετατροπής είναι πολύ χρήσιμη αν θέλετε να μάθετε τον λόγο πίσω από την αποτυχία της ανάλυσης. Μπορεί να εντοπίσει την εξαίρεση και να δείξει τις λεπτομέρειες αποτυχίας.
Πρόγραμμα
public class Program { public static String intString = '123'; public static void Main(string() args) { int i = 0; try { i = System.Convert.ToInt32(intString); } catch (Exception e) { } Console.WriteLine('The converted int is : '+i); } }
Παραγωγή
'Η μετατροπή int είναι: 123'
Εξήγηση
Στο παραπάνω πρόγραμμα, χρησιμοποιήσαμε τη μέθοδο μετατροπής για να μετατρέψουμε μια συμβολοσειρά σε ακέραιο. Εδώ εάν η μεταβλητή String είναι αριθμητική, τότε θα μετατραπεί σε ακέραιο αλλά σε περίπτωση εσφαλμένης συμβολοσειράς και θα εμφανίσει μια εξαίρεση που θα αντιμετωπιστεί από το μπλοκ catch.
int.TryParse μέθοδος
Ένας από τους πιο συνηθισμένους τρόπους ανάλυσης μιας παράστασης συμβολοσειράς σε ακέραιο αριθμό 32-bit είναι με τη χρήση της μεθόδου TryParse. Αυτή η μέθοδος δεν θεωρεί κενό διάστημα πριν ή μετά τη συμβολοσειρά, αλλά όλοι οι άλλοι χαρακτήρες συμβολοσειρών πρέπει να είναι κατάλληλου αριθμητικού τύπου για να διευκολύνουν μια μετατροπή.
Για παράδειγμα, οποιοδήποτε κενό διάστημα, αλφάβητο ή ειδικός χαρακτήρας μέσα στη μεταβλητή μπορεί να προκαλέσει σφάλμα.
Η μέθοδος TryParse δέχεται δύο παραμέτρους, η πρώτη είναι η συμβολοσειρά που ο χρήστης θέλει να μετατρέψει και η δεύτερη παράμετρος είναι η λέξη-κλειδί 'έξω' ακολουθούμενη από τη μεταβλητή στην οποία θέλετε να αποθηκεύσετε την τιμή. Θα επιστρέψει μια τιμή με βάση την επιτυχία ή την αποτυχία της μετατροπής.
TryParse(String, out var)
Ας ρίξουμε μια ματιά σε ένα απλό πρόγραμμα για να μετατρέψουμε μια αριθμητική συμβολοσειρά σε ακέραιο.
Πρόγραμμα
class Program { static void Main(string() args) { try { string value = '999'; int numeric; bool isTrue = int.TryParse(value, out numeric); if (isTrue) { Console.WriteLine('The Integer value is ' + numeric); } } catch (FormatException e) { Console.WriteLine(e.Message); } } }
Παραγωγή
Η τιμή ακέραιου είναι 999
Εξήγηση
Στο παραπάνω πρόγραμμα, χρησιμοποιήσαμε το 'TryParse' για να μετατρέψουμε την αριθμητική συμβολοσειρά σε ακέραιο. Αρχικά, ορίσαμε μια μεταβλητή συμβολοσειράς που πρέπει να μετατρέψουμε. Στη συνέχεια ξεκινήσαμε μια άλλη μεταβλητή «αριθμητική» τύπου ακέραιου. Στη συνέχεια χρησιμοποιήσαμε μια μεταβλητή Boolean για να αποθηκεύσουμε την τιμή επιστροφής της δοκιμαστικής ανάλυσης.
Εάν επιστρέψει αληθές, αυτό σημαίνει ότι η συμβολοσειρά έχει μετατραπεί επιτυχώς σε ακέραιο. Εάν επιστρέψει ψευδής, τότε υπάρχει κάποιο πρόβλημα με τη συμβολοσειρά εισόδου. Έχουμε περιβάλει ολόκληρο το απόσπασμα προγράμματος μέσα στο μπλοκ try-catch για να χειριστούμε οποιαδήποτε εξαίρεση που μπορεί να προκύψει.
Μετατροπή μη αριθμητικής συμβολοσειράς σε ακέραιο
Σε όλα τα παραπάνω προγράμματα προσπαθήσαμε να μετατρέψουμε την τιμή της αριθμητικής συμβολοσειράς σε ακέραιο, αλλά στο σενάριο του πραγματικού κόσμου τις περισσότερες φορές πρέπει να χειριστούμε συμβολοσειρές που περιέχουν ειδικούς χαρακτήρες, αλφάβητα μαζί με τους αριθμούς. Εάν θέλουμε να πάρουμε μόνο την αριθμητική τιμή, τότε μπορεί να είναι λίγο δύσκολο.
Για παράδειγμα, έχουμε μια συμβολοσειρά τιμών με τιμή 100 $ και πρέπει να πάρουμε την τιμή σε ακέραιο. Σε αυτήν την περίπτωση, εάν προσπαθήσουμε να χρησιμοποιήσουμε οποιαδήποτε από τις παραπάνω αναφερόμενες προσεγγίσεις, θα έχουμε μια εξαίρεση.
Αυτοί οι τύποι σεναρίων μπορούν να αντιμετωπιστούν εύκολα χρησιμοποιώντας ένα για βρόχο και regex αφού χωρίσετε μια συμβολοσειρά σε μια σειρά χαρακτήρων.
Ας ρίξουμε μια ματιά στο πρόγραμμα:
class Program { static void Main(string() args) { string price = '0'; string priceNumeric = ''; for(inti =0; i Παραγωγή
Η αριθμητική τιμή είναι: 100
Εξήγηση:
Στο παραπάνω κομμάτι κώδικα, έχουμε μια μεταβλητή τιμής του τύπου δεδομένων συμβολοσειράς. Στη συνέχεια, ορίζουμε και αρχικοποιούμε μια άλλη μεταβλητή stringNumeric. Η ιδέα είναι να το χρησιμοποιήσετε για να κρατήσετε το αριθμητικό μέρος της μεταβλητής τιμής.
Στη συνέχεια, χρησιμοποιήσαμε ένα βρόχο για να ελέγξουμε κάθε χαρακτήρα στη συμβολοσειρά για αριθμούς. Για να το κάνουμε αυτό, πρώτα πάρουμε τους χαρακτήρες στη μεταβλητή ch χρησιμοποιώντας το ευρετήριο. Στη συνέχεια χρησιμοποιήσαμε την έκφραση regex για να ελέγξουμε αν ο χαρακτήρας που επιλέξαμε από τη συμβολοσειρά ταιριάζει με οποιοδήποτε αριθμητικό ψηφίο ή όχι. (Η έκφραση ' d' του Regex υποδηλώνει αντιστοίχιση με ένα μόνο αριθμητικό ψηφίο.)
Στη συνέχεια συνενώσαμε και αποθηκεύσαμε την αριθμητική συμβολοσειρά στη μεταβλητή priceNumeric. Μόλις ολοκληρωθεί ο βρόχος, όλες οι αριθμητικές συμβολοσειρές σας θα προστεθούν σε αυτήν τη μεταβλητή και κάθε άλλος χαρακτήρας, συμπεριλαμβανομένων ειδικών χαρακτήρων, αλφαβήτων κ.λπ., θα αφαιρεθεί.
Όπως γνωρίζουμε, αυτή η συμβολοσειρά περιέχει τώρα μόνο τους αριθμητικούς χαρακτήρες και μπορούμε να χρησιμοποιήσουμε απευθείας το μετατροπέα για να μετατρέψουμε αυτήν τη συμβολοσειρά σε ακέραιο.
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε πώς μπορούμε να μετατρέψουμε μια συμβολοσειρά σε ακέραιο. Μάθαμε επίσης να χρησιμοποιούμε τις διαφορετικές μεθόδους που μπορούν να χρησιμοποιηθούν για μετατροπή με βάση την απαίτηση.
Προτεινόμενη ανάγνωση = >> Πώς να μετατρέψετε το String σε Integer στη Java Και Πώς να μετατρέψετε το Integer σε String στη Java
Στη συνέχεια, συζητήσαμε ένα πρόγραμμα μετατροπής συμβολοσειρών με ειδικούς χαρακτήρες ή αλφάβητα σε ακέραιο, αφαιρώντας τα μη ακέραια μέρη. Αυτό το παράδειγμα προγράμματος μπορεί να τροποποιηθεί σύμφωνα με τις απαιτήσεις του χρήστη και μπορεί να χρησιμοποιηθεί για την ανάκτηση αριθμητικών δεδομένων από οποιαδήποτε συμβολοσειρά.
=> Διαβάστε τον Οδηγό C # για αρχάριους εδώ
Συνιστώμενη ανάγνωση
- C # String Tutorial - Μέθοδοι συμβολοσειράς με παραδείγματα κώδικα
- Java String με String Buffer και String Builder Tutorial
- Νήματα Java με μεθόδους και κύκλο ζωής
- Λειτουργίες συμβολοσειράς Python
- Εκμάθηση Python String Split
- Μάθετε να χρησιμοποιείτε την τάξη C # StringBuilder και τις μεθόδους της με παραδείγματα
- Advanced Unix Shell Scripting: Arrays, File and String Test Operators, Ειδικές μεταβλητές
- C # Τυχαίος αριθμός και C # Τυχαία γεννήτρια συμβολοσειρών με παραδείγματα κώδικα