Μέθοδος υποσυμβολοσειράς VB.NET με EXAMPLE
⚡ Έξυπνη Σύνοψη
Υποσυμβολοσειρά VB.Net extracts ένα τμήμα μιας συμβολοσειράς καθορίζοντας έναν αρχικό δείκτη και ένα προαιρετικό μήκος. Η μέθοδος ανήκει στην κλάση String, μετρά χαρακτήρες από το μηδέν και επιστρέφει μια ολοκαίνουργια συμβολοσειρά χωρίς να τροποποιεί την αρχική.
Τι είναι μια υποσυμβολοσειρά;
Η συνάρτηση Substring χρησιμοποιείται για την απόκτηση ενός μέρους μιας καθορισμένης συμβολοσειράς. Αυτή η μέθοδος ορίζεται στην κλάση String της Microsoft VB.NetΠρέπει να καθορίσετε τον δείκτη έναρξης από τον οποίο θα εκτελείται η συμβολοσειρά.tracted. Το String θα είναι πρώηνtracαπό αυτόν τον δείκτη μέχρι το μήκος που καθορίζετε.
Πριν από την πρώηνtracΚατά την επεξεργασία κειμένου, βοηθά στην κατανόηση της σύνταξης που αναμένει η μέθοδος Substring.
Σύνταξη Υποσυμβολοσειράς
Η συνάρτηση δέχεται δύο ορίσματα όπως φαίνεται στην ακόλουθη σύνταξη:
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
Εδώ,
- Η λέξη-κλειδί ByVal υποδηλώνει μεταβατική τιμή, η οποία είναι ένας μηχανισμός μεταβίβασης ορισμάτων σε συναρτήσεις.
- Το start_Index είναι το ευρετήριο από το οποίο θα ληφθεί η υποσυμβολοσειρά.
- Το sub_length υποδηλώνει το μήκος μέχρι το οποίο θα αντιγραφεί η συμβολοσειρά από το start_Index. Αυτό το μήκος μετριέται με βάση τον αριθμό των χαρακτήρων. Η συνάρτηση θα επιστρέψει το extracυποσυμβολοσειρά ted.
Ο αρχικός δείκτης βασίζεται στο μηδέν, επομένως ο πρώτος χαρακτήρας της συμβολοσειράς βρίσκεται στη θέση 0 αντί για τη θέση 1.
Με την καθορισμένη σύνταξη, τα ακόλουθα παραδείγματα δείχνουν τη μέθοδο Substring εν λειτουργία μέσα σε μια εφαρμογή κονσόλας.
Παραδείγματα
Βήμα 1) Δημιουργήστε μια νέα εφαρμογή κονσόλας.
Βήμα 2) Προσθέστε τον ακόλουθο κώδικα σε αυτό:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(0, 4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Βήμα 3) Κάντε κλικ στο κουμπί Έναρξη από τη γραμμή εργαλείων για να εκτελέσετε τον κώδικα. Θα πρέπει να λάβετε το ακόλουθο αποτέλεσμα:
Έχουμε χρησιμοποιήσει τον ακόλουθο κώδικα:
Επεξήγηση του Code:
- Δημιουργία μιας ενότητας με το όνομα Module1.
- Έναρξη της κύριας υποδιαδικασίας.
- Ορισμός μιας μεταβλητής συμβολοσειράς με όνομα st και ανάθεση της τιμής Guru99 σε αυτό.
- Ορισμός μιας μεταβλητής συμβολοσειράς με όνομα 'subst' ως υποσυμβολοσειράς της συμβολοσειράς 'st' από το ευρετήριο 0 και μήκους 4 χαρακτήρων.
- Εκτύπωση κειμένου και της παραπάνω υποσυμβολοσειράς στην κονσόλα.
- Παύση του παραθύρου της κονσόλας για λίγο, περιμένοντας τον χρήστη να προβεί σε ενέργειες για να το κλείσει.
- Λήξη της κύριας υποδιαδικασίας.
- Τέλος της ενότητας.
Ένα επιχείρημα
Τι γίνεται αν περάσουμε μόνο ένα όρισμα στη συνάρτηση; Η συνάρτηση θα αντιγράψει όλα τα δεδομένα στη συμβολοσειρά που ξεκινά από αυτό το ευρετήριο. Αυτό που συμβαίνει είναι ότι η συνάρτηση Substring αντιγράφει εσωτερικά όλα τα δεδομένα συμβολοσειράς σε αυτό το ευρετήριο καθώς και αυτό που ακολουθεί αυτό το ευρετήριο. Για παράδειγμα:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Κάντε κλικ στο κουμπί Έναρξη για να εκτελέσετε τον κώδικα. Θα πρέπει να επιστρέψει τα ακόλουθα:
Η συνάρτηση Substring επέστρεψε 99. Περάσαμε την παράμετρο 4 στη συνάρτηση, που σημαίνει ότι θα αρχίσει να εκτελείταιtract η υποσυμβολοσειρά από τον χαρακτήρα στο δείκτη 4 έως το τέλος της συμβολοσειράς. Το 9 είναι ο χαρακτήρας στο δείκτη 4 της συμβολοσειράς Guru99, εξ ου και το πρώηνtracη διαδικασία ξεκίνησε εκεί.
Εκτός από την περικοπή από ένα μόνο ευρετήριο, η μέθοδος Substring μπορεί επίσης να στοχεύσει χαρακτήρες στη μέση μιας συμβολοσειράς.
Μεσαίους χαρακτήρες
Είναι επίσης δυνατό να πάρουμε τους μεσαίους χαρακτήρες του εν λόγω String. Σε αυτήν την περίπτωση, πρέπει μόνο να παράσχουμε τον αρχικό δείκτη και το μήκος της συμβολοσειράς που χρειαζόμαστε. Στο παρακάτω παράδειγμα, λαμβάνουμε μια υποσυμβολοσειρά της καθορισμένης συμβολοσειράς από το ευρετήριο 2 και η συμβολοσειρά θα έχει μήκος 2 χαρακτήρων:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(2, 2) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Κάντε κλικ στο κουμπί Έναρξη από τη γραμμή εργαλείων για να εκτελέσετε τον κώδικα. Θα έχετε το εξής αποτέλεσμα:
Στο παραπάνω παράδειγμα, η συνάρτηση Substring επέστρεψε ru. Περάσαμε τις παραμέτρους (2, 2) στη συνάρτηση. Οι πρώτες 2 δίνουν εντολή στη συνάρτηση να ξεκινήσει την extracση της υποσυμβολοσειράς από το ευρετήριο 2 ενώ το δεύτερο 2 δίνει εντολή στη συνάρτηση να επιστρέψει μια υποσυμβολοσειρά με μήκος μόνο 2 χαρακτήρων. Αυτό σημαίνει ότι το extracΗ εισαγωγή της υποσυμβολοσειράς θα πρέπει να ξεκινά από το στοιχείο που βρίσκεται στον δείκτη 2 της συμβολοσειράς Guru99, το οποίο είναι r. Δεδομένου ότι η επιστρεφόμενη υποσυμβολοσειρά θα πρέπει να έχει μήκος μόνο 2 χαρακτήρων, το extracΤο tion δεν θα περάσει πέρα από το 'u', επομένως επέστρεψε το 'ru'.
Ένας Χαρ
Μπορούμε να χρησιμοποιήσουμε τη συνάρτηση Substring για να πάρουμε έναν μόνο χαρακτήρα από μια συμβολοσειρά. Σε μια τέτοια περίπτωση, είναι απαραίτητο να κάνετε μια κατανομή, αλλά ο χαρακτήρας είναι προσβάσιμος απευθείας. Αυτό είναι λίγο πιο γρήγορο. Το παρακάτω παράδειγμα δείχνει δύο τρόπους με τους οποίους μπορούμε να το πετύχουμε αυτό:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim mid1 As Char = st(1) Console.WriteLine(mid1) Dim mid2 As String = st.Substring(1, 1) Console.WriteLine(mid2) Console.ReadKey() End Sub End Module
Κάντε κλικ στο κουμπί Έναρξη για να εκτελέσετε τον κώδικα. Θα έχετε το εξής αποτέλεσμα:
Έχουμε χρησιμοποιήσει τον ακόλουθο κώδικα:
Επεξήγηση του Code:
- Δημιουργία μιας ενότητας με το όνομα Module1.
- Έναρξη της κύριας υποδιαδικασίας.
- Ορισμός μιας μεταβλητής συμβολοσειράς με όνομα st και ανάθεση της τιμής Guru99 σε αυτό.
- Ορισμός μιας μεταβλητής συμβολοσειράς με το όνομα mid1 και λήψη του χαρακτήρα στο ευρετήριο 1 του String st. Αυτός ο χαρακτήρας θα εκχωρηθεί στη μεταβλητή mid1.
- Εκτύπωση του παραπάνω χαρακτήρα στην κονσόλα.
- Ορισμός μιας μεταβλητής συμβολοσειράς με το όνομα mid2 και λήψη του χαρακτήρα στο δείκτη 1 με μήκος 1 από το String st. Το μήκος του 1 σημαίνει ότι θα επιστρέψει τον ίδιο χαρακτήρα στον αρχικό δείκτη. Η καταμέτρηση ξεκινά από τον αρχικό δείκτη που καθορίζετε. Αυτός ο χαρακτήρας θα εκχωρηθεί στη μεταβλητή mid2.
- Εκτύπωση του παραπάνω χαρακτήρα στην κονσόλα.
- Παύση του παραθύρου της κονσόλας για λίγο, περιμένοντας τον χρήστη να προβεί σε ενέργειες για να το κλείσει.
- Λήξη της κύριας υποδιαδικασίας.
- Τέλος της ενότητας.
Μόλις νιώσετε άνετα, π.χ.tracΌταν επεξεργάζεστε υποσυμβολοσειρές, αξίζει να γνωρίζετε πώς να χειρίζεστε τα σφάλματα που μπορεί να προκαλέσει η μέθοδος.
Συνηθισμένα σφάλματα υποσυμβολοσειράς και πώς να τα αποφύγετε
Η μέθοδος Substring είναι αυστηρή όσον αφορά τις τιμές που της μεταβιβάζετε. Όταν ένα όρισμα βρίσκεται εκτός των ορίων της συμβολοσειράς, το VB.Net δημιουργεί μια ArgumentOutOfRangeException και σταματά το πρόγραμμα κατά τον χρόνο εκτέλεσης. Η κατανόηση των κανόνων σάς βοηθά να αποφύγετε αυτό το συνηθισμένο λάθος.
Η μέθοδος εγείρει την εξαίρεση σε τρεις περιπτώσεις:
- Το start_Index είναι ένας αρνητικός αριθμός.
- Το start_Index είναι μεγαλύτερο από το μήκος της συμβολοσειράς.
- Το άθροισμα των σημείων start_Index και sub_length πέρα από το τέλος της συμβολοσειράς.
Ένα συχνό λάθος είναι η χρήση του αποτελέσματος της συνάρτησης IndexOf χωρίς να το ελέγξει πρώτα. Όταν το IndexOf δεν βρίσκει τον χαρακτήρα, επιστρέφει -1 και η μεταβίβαση του -1 στο Substring ενεργοποιεί την εξαίρεση. Ο ακόλουθος κώδικας το προστατεύει από αυτό:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim pos As Integer = st.IndexOf("9") If pos >= 0 Then Dim subst As String = st.Substring(pos) Console.WriteLine(subst) Else Console.WriteLine("Character not found") End If Console.ReadKey() End Sub End Module
Η επικύρωση του ευρετηρίου πριν από την κλήση διατηρεί την εφαρμογή σας σε ομαλή λειτουργία, ακόμα και όταν η συμβολοσειρά εισόδου δεν περιέχει τον χαρακτήρα που αναμένετε.
Λήψη δευτερεύουσας συμβολοσειράς πριν ή μετά από έναν χαρακτήρα
Μια συνηθισμένη εργασία είναι π.χ.tracρύθμιση του κειμένου που εμφανίζεται πριν ή μετά από έναν συγκεκριμένο χαρακτήρα, όπως ο διαχωρισμός μιας διεύθυνσης ηλεκτρονικού ταχυδρομείου στο σύμβολο @. Το VB.Net δεν παρέχει ειδική λειτουργία για αυτό, αλλά μπορείτε να συνδυάσετε το IndexOf με το Substring για να το πετύχετε.
Κείμενο πριν από έναν χαρακτήρα: καλέστε το IndexOf για να εντοπίσετε τον χαρακτήρα και, στη συνέχεια, περάστε αυτόν τον δείκτη ως μήκος στο Substring:
Module Module1 Sub Main() Dim email As String = "guru99@example.com" Dim position As Integer = email.IndexOf("@") Dim namePart As String = email.Substring(0, position) Console.WriteLine(namePart) Console.ReadKey() End Sub End Module
Ο κώδικας τυπώνει guru99, το τμήμα της συμβολοσειράς που βρίσκεται πριν από το σύμβολο @.
Κείμενο μετά από έναν χαρακτήρα: Προσθέστε 1 στο ευρετήριο και αφήστε το Substring να εκτελεστεί στο τέλος του String:
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
Αυτό επιστρέφει example.com. Όταν ένας χαρακτήρας εμφανίζεται περισσότερες από μία φορές, χρησιμοποιήστε το LastIndexOf αντί για το IndexOf για να ξεκινήσετε από την τελευταία εμφάνιση αντί για την πρώτη.
Υποσυμβολοσειρά έναντι αριστερών, δεξιών και μεσαίων συναρτήσεων
Η Visual Basic κληρονομεί τρεις παλαιότερες συναρτήσεις συμβολοσειράς από παλαιότερες εκδόσεις: Left, Right και Mid. Αυτές βρίσκονται στο Microsoft.VisualBasic namespace και μπορεί να φαίνεται πιο οικείο σε προγραμματιστές που προέρχονται από την κλασική VB.
- Αριστερά(συμβολοσειρά, n) Επιστρέφει τους πρώτους n χαρακτήρες μιας συμβολοσειράς.
- Δεξιά(συμβολοσειρά, n) Επιστρέφει τους τελευταίους n χαρακτήρες μιας συμβολοσειράς.
- Μέσο (συμβολοσειρά, έναρξη, μήκος) Επιστρέφει ένα τμήμα από μια αρχική θέση, όπως ακριβώς και η Substring.
Η βασική διαφορά είναι ο τρόπος με τον οποίο μετρούν τις θέσεις. Η συνάρτηση Mid βασίζεται στο ένα, επομένως ο πρώτος χαρακτήρας βρίσκεται στη θέση 1, ενώ η μέθοδος Substring βασίζεται στο μηδέν και ξεκινά την μέτρηση από το 0. Η Substring είναι η τυπική προσέγγιση .NET και συμπεριφέρεται με τον ίδιο τρόπο σε κάθε γλώσσα .NET, επομένως είναι η συνιστώμενη επιλογή για νέο κώδικα. Κρατήστε τα Left, Right και Mid για τη διατήρηση παλαιότερων έργων της Visual Basic.






