Τι πρέπει να γνωρίζετε για τη χρήση συμβολοσειρών στην Java

Τι πρέπει να γνωρίζετε για τη χρήση συμβολοσειρών στην Java

Μόλις αρχίσετε να μαθαίνετε Java, η τάξη String θα τραβήξει την προσοχή σας, χάρη στις μοναδικές της ιδιότητες.





Μπορείτε να δημιουργήσετε και να χειριστείτε συμβολοσειρές στην Java πιο εύκολα από άλλες γλώσσες. Αυτό συμβαίνει επειδή η κλάση String προσφέρει διάφορες δυνατότητες.





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





Πώς διαφέρουν οι συμβολοσειρές Java;

Εάν έχετε εργαστεί στο παρελθόν με τη γλώσσα C, γνωρίζετε ότι οι συμβολοσειρές στο C είναι ένας πίνακας οστεοφυλάκιο (χαρακτήρες). Από την άλλη πλευρά, οι συμβολοσειρές Java είναι αμετάβλητες και περιέχουν χαρακτήρες Unicode.

κάντε κλικ και σύρετε δεν λειτουργεί mac

Ένα από τα βασικά χαρακτηριστικά που καθιστούν τις συμβολοσειρές στην Java μοναδική είναι η συνένωση. Απλώς χρησιμοποιήστε τον τελεστή προσθήκης + για να ενώσετε δύο ή περισσότερες συμβολοσειρές. Αυτό είναι κάτι που δεν μπορείτε να κάνετε με άλλα αντικείμενα Java, όπως π.χ. Σημείο ή Κύκλος Το



Επίσης, όπως προαναφέρθηκε, οι συμβολοσειρές Java είναι αμετάβλητες, δηλαδή δεν μπορείτε να τις τροποποιήσετε. Για παράδειγμα, μέθοδοι όπως toUpperCase () και toLowerCase () δημιουργήσει μια εντελώς νέα συμβολοσειρά, αντί να κάνει αλλαγές στα υπάρχοντα περιεχόμενα συμβολοσειράς. Τώρα ο κωδικός σας θα επιστρέψει αυτήν τη συμβολοσειρά που δημιουργήθηκε πρόσφατα.

Σχετικά: Πώς να χειριστείτε το κείμενο σε PHP με αυτές τις λειτουργίες





Ένας άλλος τομέας όπου οι συμβολοσειρές διαφέρουν είναι όταν πρόκειται για χρήση μηδενικών χαρακτήρων για τερματισμό συμβολοσειρών σε γλώσσες όπως η C. Στην Java, οι συμβολοσειρές είναι αντικείμενα που υποστηρίζονται από πίνακες χαρακτήρων. Αν θέλετε να διαβάσετε τα περιεχόμενα της συμβολοσειράς σας με τον τρόπο που τα παρουσιάζουν οι πίνακες χαρακτήρων, χρησιμοποιώντας το toCharArray () η μέθοδος θα κάνει τη δουλειά.

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





Σε μια παρόμοια σημείωση, η αναζήτηση μέσα σε υποσύμβολα στην Java είναι επίσης χωρίς προβλήματα. Κατά τη χρήση κανονικών εκφράσεων ή μεθόδους όπως lastIndexOf () και indexOf (), μπορείτε να αναζητήσετε τμήματα συμβολοσειρών και να επιστρέψετε τιμές μόλις προσδιοριστεί μια αντιστοίχιση. Μπορείτε επίσης να χρησιμοποιήσετε τυπικές εκφράσεις για να κόψετε και να χωρίσετε διαφορετικές συμβολοσειρές και να τις χρησιμοποιήσετε ξεχωριστά για ένα ευρύ φάσμα χρήσεων σε οποιοδήποτε πρόγραμμα.

Πώς αποθηκεύονται οι χορδές στη μνήμη;

Τώρα που γνωρίζετε τι κάνει τις συμβολοσειρές στην Java διαφορετικές και ωφέλιμες, ας εξερευνήσουμε την κλάση String. Εάν γνωρίζετε ένα ή δύο πράγματα σχετικά με τη διαχείριση μνήμης στην Java, τότε πρέπει να έχετε ασχοληθεί με τις δύο βασικές οντότητες της: σωρός και στοίβα.

Η στοίβα χρησιμοποιείται για την εκτέλεση διαδικασιών και λειτουργιών μετά από κλήση από πρόγραμμα Java, ενώ ο σωρός αποθηκεύει περιεχόμενο - απαραίτητο για την αποτελεσματική εκτέλεση και εκτέλεση κώδικα. Λοιπόν, πώς είναι σχετική η διαχείριση μνήμης στην περίπτωση των χορδών;

Αυτό συμβαίνει επειδή η κλάση συμβολοσειράς και τα γράμματα συμβολοσειράς στην Java λαμβάνουν διαφορετική μεταχείριση. Αυτό υποδηλώνει ότι οι κυριολεκτικές συμβολοσειρές αποδίδουν μοναδικό χώρο αποθήκευσης στη μνήμη σωρού, που αναφέρεται ως String Constant Pool. Επομένως, κάθε φορά που χρησιμοποιείτε γράμματα συμβολοσειράς για να δημιουργήσετε αντικείμενα συμβολοσειράς στην Java, το String Constant Pool τα αποθηκεύει.

Αντίθετα, όταν χρησιμοποιείτε το νέος λέξη -κλειδί για τη δημιουργία αντικειμένων συμβολοσειράς, η Java θα τα μεταχειριστεί όπως κάθε άλλο αντικείμενο και θα τα στείλει στο σωρό για αποθήκευση.

Παράδειγμα String Literals

Τώρα που γνωρίζετε αρκετά για αντικείμενα συμβολοσειράς, ας δούμε ένα παράδειγμα κυριολεκτικών συμβολοσειρών:


public class muostrings {
public static void main(String args[])
{
String himuo = 'Hello World from MUO';
System. out .println (himuo);
}
}

Εδώ, η συμβολοσειρά κυριολεκτικά δημιούργησε το αντικείμενο συμβολοσειράς με περιεχόμενο Hello World από το MUO. Η Java θα στείλει αυτό το αντικείμενο στο String Constant Pool.

Χρήση της νέας λέξης -κλειδιού

Μπορείτε επίσης να χρησιμοποιήσετε το νέος λέξη -κλειδί για τη δημιουργία αντικειμένων συμβολοσειράς.

Το αντικείμενο συμβολοσειράς της συμβολοσειράς himuo με περιεχόμενο Hello World από το MUO έχει δημιουργηθεί από μια κυριολεκτική συμβολοσειρά και θα σταλεί στο String Constant Pool. Ομοίως, μπορούν να δημιουργηθούν αντικείμενα συμβολοσειράς χρησιμοποιώντας τη νέα λέξη -κλειδί ως εξής:


public class muostringsobj {
public static void main(String args[]) {
char [] strArr = { 'M', 'O', 'U'};
String jStr = new String(strArr);
System. out .println( jStr );
}
}

Το παραπάνω παράδειγμα χρησιμοποιεί το νέος λέξη -κλειδί για τη δημιουργία ενός αντικειμένου συμβολοσειράς. Όπως εξηγήθηκε προηγουμένως, αποστέλλονται στο σωρό, όπου αποθηκεύονται με άλλες μεταβλητές και αντικείμενα που περιμένουν να εκτελεστούν από το πρόγραμμα.

Μέχρι τώρα, πρέπει να είστε περίεργοι για το String Constant Pool, και δικαίως. Διαθέτει χώρο πισίνας σε αντικείμενα με βάση το περιεχόμενο του αντικειμένου συμβολοσειράς. Αφού το String Constant Pool λάβει αντικείμενα, τα ελέγχει για να επαληθεύσει εάν δύο αντικείμενα περιέχουν ακριβώς το ίδιο περιεχόμενο.

Μπορούν δύο αντικείμενα συμβολοσειράς να αποθηκεύουν το ίδιο περιεχόμενο;

Όταν μια συμβολοσειρά κυριολεκτική χρησιμοποιείται για τη δημιουργία ενός νέου αντικειμένου, η Java Virtual Machine (JVM) εξετάζει τα περιεχόμενα του αντικειμένου και αξιολογεί εάν υπάρχει ήδη στην ομάδα. Όταν ένα αντικείμενο περιέχει περιεχόμενο που υπάρχει ήδη στην ομάδα, η αναφορά του αντικειμένου επιστρέφεται χωρίς να δημιουργηθεί το νέο αντικείμενο. Εάν πρέπει να δημιουργήσετε το νέο αντικείμενο, πρέπει να βεβαιωθείτε ότι το περιεχόμενο είναι ξεχωριστό και μοναδικό.

Ωστόσο, εάν χρησιμοποιείτε το νέος λέξη -κλειδί για τη δημιουργία μιας νέας συμβολοσειράς, θα υποβληθεί σε διαφορετική επεξεργασία. Όταν χρησιμοποιείτε το νέος λέξη -κλειδί για τη δημιουργία μιας νέας συμβολοσειράς, θα δημιουργηθεί, ανεξάρτητα από το αν περιέχει το ίδιο περιεχόμενο με την υπάρχουσα συμβολοσειρά.

Αυτό υποδεικνύει ότι δύο υπάρχοντα αντικείμενα συμβολοσειρών αποθηκευμένα στη μνήμη σωρού επιτρέπεται να περιέχουν το ίδιο περιεχόμενο. αυτό είναι διαφορετικό από τα αντικείμενα συμβολοσειράς που είναι αποθηκευμένα στο String Constant Pool. Μπορείτε επίσης να το αποδείξετε με τον τελεστή == επιστρέφει true αν συγκριθούν δύο αντικείμενα με την ίδια φυσική διεύθυνση.


public class comparingStrngs {
public static void main(String[] args)
{
String firstLiteral = 'muo1';
String secondLiteral = 'muo1';
System. out .println(firstLiteral == secondLiteral);
String firstKeyword = new String('muo2');
String secondKeyword = new String('muo2');
System. out .println(firstKeyword == secondKeyword);
}
}

Τώρα μπορείτε να κατανοήσετε εύκολα τις συμβολοσειρές στην Java

Σε αυτό το άρθρο, μάθατε πώς οι συμβολοσειρές στην Java είναι διαφορετικές, τρόποι χρήσης συμβολοσειρών στην Java, διαχείριση μνήμης συμβολοσειρών στην Java και άλλες σημαντικές λεπτομέρειες σχετικά με τον τρόπο λειτουργίας των συμβολοσειρών. Για να δοκιμάσετε την κατανόησή σας, γιατί να μην γράψετε ένα πρόγραμμα Java για να συνδέσετε δύο συμβολοσειρές;

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Μαθαίνω Python; Δείτε πώς μπορείτε να χειριστείτε τις χορδές

Η χρήση και ο χειρισμός συμβολοσειρών στην Python μπορεί να φαίνεται δύσκολη, αλλά είναι παραπλανητικά απλή.

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • Ιάβα
Σχετικά με τον Συγγραφέα Ουσμάν Γκανί(4 άρθρα δημοσιεύθηκαν)

Ο Usman είναι έμπορος περιεχομένου που έχει βοηθήσει αρκετές επιχειρήσεις με οργανική ανάπτυξη σε ψηφιακές πλατφόρμες. Του αρέσει τόσο ο προγραμματισμός όσο και η γραφή, πράγμα που σημαίνει ότι η τεχνική γραφή είναι κάτι που του αρέσει πολύ. Όταν δεν εργάζεται, ο Usman απολαμβάνει να περνάει χρόνο παρακολουθώντας τηλεοπτικές εκπομπές, ακολουθώντας κρίκετ και διαβάζοντας για αναλύσεις δεδομένων.

Περισσότερα από τον Usman Ghani

Εγγραφείτε στο newsletter μας

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

Κάντε κλικ εδώ για εγγραφή