Σε αυτό το σεμινάριο, θα μάθουμε για τις συμβολοσειρές Java, τον τρόπο δημιουργίας τους και διάφορες μεθόδους συμβολοσειράς με τη βοήθεια παραδειγμάτων.
Στην Java, μια συμβολοσειρά είναι μια ακολουθία χαρακτήρων. Για παράδειγμα, το "γεια" είναι μια συμβολοσειρά που περιέχει μια ακολουθία χαρακτήρων "h", "e", "l", "l" και "o".
Χρησιμοποιούμε διπλά εισαγωγικά για να αντιπροσωπεύσουμε μια συμβολοσειρά στην Java. Για παράδειγμα,
// create a string String type = "Java programming";
Εδώ, δημιουργήσαμε μια μεταβλητή συμβολοσειράς που ονομάζεται τύπος. Η μεταβλητή αρχικοποιείται με τη συμβολοσειρά Java Programming
.
Σημείωση : Χορδές σε Java δεν είναι πρωτόγονες μορφές (όπως int
, char
κλπ). Αντ 'αυτού, όλες οι συμβολοσειρές είναι αντικείμενα μιας προκαθορισμένης κλάσης που ονομάζεται String
.
Και, όλες οι μεταβλητές συμβολοσειρών είναι παρουσίες της String
κλάσης.
Παράδειγμα: Δημιουργία συμβολοσειράς σε Java
class Main ( public static void main(String() args) ( // create strings String first = "Java"; String second = "Python"; String third = "JavaScript"; // print strings System.out.println(first); // print Java System.out.println(second); // print Python System.out.println(third); // print JavaScript ) )
Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει τρεις χορδές που ονομάζονται πρώτη, δεύτερη και τρίτη. Εδώ, δημιουργούμε απευθείας χορδές όπως πρωτόγονοι τύποι.
Ωστόσο, υπάρχει ένας άλλος τρόπος δημιουργίας συμβολοσειρών Java (χρησιμοποιώντας τη new
λέξη-κλειδί). Θα μάθουμε για αυτό αργότερα σε αυτό το σεμινάριο.
Λειτουργίες συμβολοσειράς Java
Το Java String παρέχει διάφορες μεθόδους για την εκτέλεση διαφορετικών λειτουργιών σε συμβολοσειρές. Θα εξετάσουμε μερικές από τις συνήθεις λειτουργίες συμβολοσειρών.
1. Πάρτε το μήκος μιας χορδής
Για να βρούμε το μήκος μιας συμβολοσειράς, χρησιμοποιούμε τη length()
μέθοδο της συμβολοσειράς. Για παράδειγμα,
class Main ( public static void main(String() args) ( // create a string String greet = "Hello! World"; System.out.println("String: " + greet); // get the length of greet int length = greet.length(); System.out.println("Length: " + length); ) )
Παραγωγή
String: Γεια σας! Μήκος κόσμου: 12
Στο παραπάνω παράδειγμα, η length()
μέθοδος υπολογίζει τον συνολικό αριθμό χαρακτήρων στη συμβολοσειρά και την επιστρέφει. Για να μάθετε περισσότερα, επισκεφθείτε το Java String length ().
2. Συμμετέχετε σε δύο χορδές
Μπορούμε να ενώσουμε δύο χορδές στην Java χρησιμοποιώντας τη concat()
μέθοδο. Για παράδειγμα,
class Main ( public static void main(String() args) ( // create first string String first = "Java "; System.out.println("First String: " + first); // create second String second = "Programming"; System.out.println("Second String: " + second); // join two strings String joinedString = first.concat(second); System.out.println("Joined String: " + joinedString); ) )
Παραγωγή
Πρώτη συμβολοσειρά: Java Δεύτερη συμβολοσειρά: Προγραμματισμός ενωμένες συμβολοσειρές: Προγραμματισμός Java
Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει δύο χορδές που ονομάζονται πρώτη και δεύτερη. Παρατηρήστε τη δήλωση,
String joinedString = first.concat(second);
Εδώ, εμείς η concat()
μέθοδος ενώνει το πρώτο και το δεύτερο και την εκχωρεί στη μεταβλητή JoinString.
Μπορούμε επίσης να ενώσουμε δύο χορδές χρησιμοποιώντας τον +
τελεστή στην Java. Για να μάθετε περισσότερα, επισκεφθείτε το Java String concat ().
3. Συγκρίνετε δύο χορδές
Στην Java, μπορούμε να κάνουμε συγκρίσεις μεταξύ δύο χορδών χρησιμοποιώντας τη equals()
μέθοδο. Για παράδειγμα,
class Main ( public static void main(String() args) ( // create 3 strings String first = "java programming"; String second = "java programming"; String third = "python programming"; // compare first and second strings boolean result1 = first.equals(second); System.out.println("Strings first and second are equal: " + result1); // compare first and third strings boolean result2 = first.equals(third); System.out.println("Strings first and third are equal: " + result2); ) )
Παραγωγή
Οι χορδές πρώτο και δεύτερο είναι ίσες: αληθινές χορδές πρώτη και τρίτη είναι ίσες: λανθασμένες
Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει 3 χορδές που ονομάζονται πρώτη, δεύτερη και τρίτη. Εδώ, χρησιμοποιούμε τη equal()
μέθοδο για να ελέγξουμε εάν μια συμβολοσειρά είναι ίδια με μια άλλη.
Η equals()
μέθοδος ελέγχει το περιεχόμενο των συμβολοσειρών ενώ τις συγκρίνει. Για να μάθετε περισσότερα, επισκεφθείτε το Java String ισούται με ().
Σημείωση : Μπορούμε επίσης να συγκρίνουμε δύο χορδές χρησιμοποιώντας τον ==
τελεστή στην Java. Ωστόσο, αυτή η προσέγγιση είναι διαφορετική από τη equals()
μέθοδο. Για να μάθετε περισσότερα, επισκεφθείτε το Java String == έναντι ίσο ()
Μέθοδοι συμβολοσειράς Java
Εκτός από αυτές που αναφέρθηκαν παραπάνω, υπάρχουν διάφορες μέθοδοι συμβολοσειρών που υπάρχουν στην Java. Εδώ είναι μερικές από αυτές τις μεθόδους:
Μέθοδοι | Περιγραφή |
---|---|
υπόστρωμα () | επιστρέφει το υπόστρωμα της συμβολοσειράς |
αντικαθιστώ() | αντικαθιστά τον καθορισμένο παλιό χαρακτήρα με τον καθορισμένο νέο χαρακτήρα |
charAt () | επιστρέφει τον χαρακτήρα που υπάρχει στην καθορισμένη τοποθεσία |
getBytes () | μετατρέπει τη συμβολοσειρά σε μια σειρά byte |
ευρετήριοOf () | επιστρέφει τη θέση του καθορισμένου χαρακτήρα στη συμβολοσειρά |
σύγκρισηΤο () | συγκρίνει δύο χορδές με τη σειρά του λεξικού |
τακτοποίηση() | αφαιρεί τα κενά και τα κενά |
μορφή() | επιστρέφει μια μορφοποιημένη συμβολοσειρά |
διαίρεση() | σπάει τη συμβολοσειρά σε μια σειρά από χορδές |
toLowerCase () | μετατρέπει τη συμβολοσειρά σε πεζά |
σεUpperCase () | μετατρέπει τη συμβολοσειρά σε κεφαλαία |
αξία του() | επιστρέφει την παράσταση συμβολοσειράς του καθορισμένου ορίσματος |
στοCharArray () | μετατρέπει τη συμβολοσειρά σε char πίνακα |
Χαρακτήρας διαφυγής στις συμβολοσειρές Java
Ο χαρακτήρας διαφυγής χρησιμοποιείται για να διαφύγει μερικών από τους χαρακτήρες που υπάρχουν μέσα σε μια συμβολοσειρά.
Ας υποθέσουμε ότι πρέπει να συμπεριλάβουμε διπλά εισαγωγικά μέσα σε μια συμβολοσειρά.
// include double quote String example = "This is the "String" class";
Since strings are represented by double quotes, the compiler will treat "This is the " as the string. Hence, the above code will cause an error.
To solve this issue, we use the escape character in Java. For example,
// use the escape character String example = "This is the "String " class.";
Now escape characters tell the compiler to escape double quotes and read the whole text.
Java Strings are Immutable
In Java, strings are immutable. This means, once we create a string, we cannot change that string.
To understand it more deeply, consider an example:
// create a string String example = "Hello! ";
Here, we have created a string variable named example. The variable holds the string "Hello! ".
Now suppose we want to change the string.
// add another string "World" // to the previous tring example example = example.concat(" World");
Here, we are using the concat()
method to add another string World to the previous string.
It looks like we are able to change the value of the previous string. However, this is not true
.
Let's see what has happened here,
- JVM takes the first string "Hello! "
- creates a new string by adding "World" to the first string
- assign the new string "Hello! World" to the example variable
- the first string "Hello! " remains unchanged
Creating strings using the new keyword
So far we have created strings like primitive types in Java.
Since strings in Java are objects, we can create strings using the new
keyword as well. For example,
// create a string using the new keyword String name = new String("Java String");
In the above example, we have created a string name using the new
keyword.
Here, when we create a string object, the String()
constructor is invoked. To learn more about constructor, visit Java Constructor.
Note: The String
class provides various other constructors to create strings. To learn more, visit Java String (official Java documentation).
Example: Create Java Strings using the new keyword
class Main ( public static void main(String() args) ( // create a string using new String name = new String("Java String"); System.out.println(name); // print Java String ) )
Create String using literals vs new keyword
Now that we know how strings are created using string literals and the new
keyword, let's see what is the major difference between them.
In Java, the JVM maintains a string pool to store all of its strings inside the memory. The string pool helps in reusing the strings.
While creating strings using string literals, the value of the string is directly provided. Hence, the compiler first checks the string pool to see if the string already exists.
- Εάν η συμβολοσειρά υπάρχει ήδη , η νέα συμβολοσειρά δεν δημιουργείται. Αντ 'αυτού, η νέα αναφορά δείχνει την υπάρχουσα συμβολοσειρά.
- Εάν η συμβολοσειρά δεν υπάρχει , δημιουργείται η νέα συμβολοσειρά.
Ωστόσο, κατά τη δημιουργία συμβολοσειρών χρησιμοποιώντας τη νέα λέξη-κλειδί , η τιμή της συμβολοσειράς δεν παρέχεται άμεσα. Εξ ου και η νέα συμβολοσειρά δημιουργείται συνεχώς.