logo

מחרוזת ג'אווה

ב Java , מחרוזת היא בעצם אובייקט המייצג רצף של ערכי char. א מַעֲרָך של תווים פועל כמו מחרוזת Java. לדוגמה:

 char[] ch={'j','a','v','a','t','p','o','i','n','t'}; String s=new String(ch); 

זהה ל:

 String s='javatpoint'; 

מחרוזת ג'אווה class מספקת הרבה שיטות לביצוע פעולות על מחרוזות כגון compare(), concat(), equals(), split(), length(), replace(), compareTo(), intern(), substring() וכו'.

המחלקה java.lang.String מיישמת ניתן להסדרה , בר השוואה ו CharSequence ממשקים .

מחרוזת ב-Java

ממשק CharSequence

ממשק CharSequence משמש לייצוג רצף התווים. חוּט, StringBuffer ו StringBuilder כיתות מיישמות את זה. זה אומר שאנחנו יכולים ליצור מחרוזות ב-Java על ידי שימוש בשלושת המחלקות האלה.

CharSequence ב-Java

מחרוזת Java היא בלתי ניתנת לשינוי מה שאומר שלא ניתן לשנות אותה. בכל פעם שאנו משנים מחרוזת כלשהי, נוצר מופע חדש. עבור מחרוזות הניתנות לשינוי, אתה יכול להשתמש במחלקות StringBuffer ו-StringBuilder.

נדון במחרוזת בלתי ניתנת לשינוי מאוחר יותר. בואו נבין תחילה מה זה String ב-Java וכיצד ליצור את אובייקט String.

מה זה מחרוזת ב-Java?

באופן כללי, מחרוזת היא רצף של תווים. אבל ב-Java, מחרוזת היא אובייקט המייצג רצף של תווים. המחלקה java.lang.String משמשת ליצירת אובייקט מחרוזת.

כיצד ליצור אובייקט מחרוזת?

ישנן שתי דרכים ליצור אובייקט מחרוזת:

  1. לפי מחרוזת מילולית
  2. לפי מילת מפתח חדשה

1) מחרוזת מילולית

Java String מילולי נוצר על ידי שימוש במירכאות כפולות. לדוגמה:

 String s='welcome'; 

בכל פעם שאתה יוצר מחרוזת מילולית, ה-JVM בודק תחילה את 'בריכה קבועה של מחרוזת'. אם המחרוזת כבר קיימת במאגר, מוחזרת הפניה למופע המאגר. אם המחרוזת לא קיימת במאגר, נוצר מופע מחרוזת חדש וממוקם במאגר. לדוגמה:

 String s1='Welcome'; String s2='Welcome';//It doesn't create a new instance 

מחרוזת ג'אווה

בדוגמה לעיל, רק אובייקט אחד ייווצר. ראשית, JVM לא ימצא שום אובייקט מחרוזת עם הערך 'Welcome' ב-string constant pool ולכן הוא יצור אובייקט חדש. לאחר מכן הוא ימצא את המחרוזת עם הערך 'Welcome' בבריכה, היא לא תיצור אובייקט חדש אלא תחזיר את ההפניה לאותו מופע.

הערה: אובייקטים של מחרוזת מאוחסנים באזור זיכרון מיוחד המכונה 'בריכה קבועה של מחרוזת'.

מדוע Java משתמשת במושג מחרוזת מילולית?

כדי להפוך את Java ליעילה יותר בזיכרון (מכיוון שלא נוצרים אובייקטים חדשים אם הוא קיים כבר במאגר הקבועים של המחרוזות).

2) לפי מילת מפתח חדשה

 String s=new String('Welcome');//creates two objects and one reference variable 

במקרה כזה, JVM ייצור אובייקט מחרוזת חדש בזיכרון ערימה רגיל (שאיננו מאגר), וה-'Welcome' המילולי ימוקם במאגר הקבוע של המיתר. המשתנה s יתייחס לאובייקט בערימה (שאינו מאגר).

סדר אקראי sql

דוגמה למחרוזת Java

StringExample.java

 public class StringExample{ public static void main(String args[]){ String s1='java';//creating string by Java string literal char ch[]={'s','t','r','i','n','g','s'}; String s2=new String(ch);//converting char array to string String s3=new String('example');//creating Java string by new keyword System.out.println(s1); System.out.println(s2); System.out.println(s3); }} 
בדוק את זה עכשיו

תְפוּקָה:

java strings example 

הקוד לעיל, ממיר א לְהַשְׁחִיר מערך לתוך א חוּט לְהִתְנַגֵד. ומציג את אובייקטי המחרוזת s1, s2 , ו s3 באמצעות קונסולה println() שיטה.

שיטות כיתה Java String

המחלקה java.lang.String מספקת שיטות שימושיות רבות לביצוע פעולות על רצף ערכי char.

לא.שיטהתיאור
1 char charAt(int index) זה מחזיר ערך char עבור המדד המסוים
2 int length() זה מחזיר את אורך המחרוזת
3 תבנית מחרוזת סטטית (פורמט מחרוזת, אובייקט... args) זה מחזיר מחרוזת מעוצבת.
4 תבנית מחרוזת סטטית (Locale l, תבנית מחרוזת, אובייקט... args) זה מחזיר מחרוזת מעוצבת עם מיקום נתון.
5 מחרוזת משנה (int beginIndex) הוא מחזיר מחרוזת משנה עבור אינדקס התחלה נתון.
6 מחרוזת משנה (int beginIndex, int endIndex) הוא מחזיר מחרוזת משנה עבור אינדקס התחלה ואינדקס סיום נתון.
7 boolean contains(CharSequence s) הוא מחזיר אמת או שקר לאחר התאמת רצף ערך ה-char.
8 סטטי String join(charSequence delimiter, CharSequence... elements) זה מחזיר מחרוזת מחוברת.
9 סטטי String join (מפריד CharSequence, Iterable elements) זה מחזיר מחרוזת מצורפת.
10 בוליאני שווה (אובייקט אחר) זה בודק את השוויון של מחרוזת עם האובייקט הנתון.
אחד עשר boolean is Empty() זה בודק אם המחרוזת ריקה.
12 String concat(String str) זה משרשר את המחרוזת שצוינה.
13 מחרוזת החלפת (char ישן, char חדש) הוא מחליף את כל המופעים של ערך ה-char שצוין.
14 החלפת מחרוזת (CharSequence ישן, CharSequence חדש) זה מחליף את כל המופעים של CharSequence שצוין.
חֲמֵשׁ עֶשׂרֵה סטטי String equalsIgnoreCase(מחרוזת אחרת) זה משווה מחרוזת אחרת. זה לא בודק מקרה.
16 String[] split(String regex) הוא מחזיר מחרוזת מפוצלת התואמת ביטוי רגולרי.
17 String[] split(string regex, int limit) הוא מחזיר מחרוזת מפוצלת התואמת ביטוי רגיל וגבול.
18 String intern() זה מחזיר מחרוזת פנימית.
19 int indexOf(int ch) זה מחזיר את אינדקס ערך ה-char שצוין.
עשרים int indexOf(int ch, int fromIndex) הוא מחזיר את אינדקס ערך ה-char שצוין החל באינדקס נתון.
עשרים ואחת int indexOf(מחרוזת משנה) זה מחזיר את אינדקס המחרוזת שצוין.
22 int indexOf(מחרוזת משנה, int fromIndex) הוא מחזיר את אינדקס המחרוזת שצוין החל באינדקס נתון.
23 מחרוזת toLowerCase() זה מחזיר מחרוזת באותיות קטנות.
24 מחרוזת לאותיות קטנות (Locale l) זה מחזיר מחרוזת באותיות קטנות באמצעות המקום שצוין.
25 מחרוזת toUpperCase() זה מחזיר מחרוזת באותיות רישיות.
26 מחרוזת לאותיות גדולות (מקומי l) זה מחזיר מחרוזת באותיות רישיות באמצעות המקום שצוין.
27 חיתוך מחרוזת() זה מסיר רווחים התחלה וסיום של מחרוזת זו.
28 סטטי מחרוזת valueOf(int value) זה ממיר סוג נתון למחרוזת. זו שיטה עמוסה מדי.

האם אתה יודע?
  • מדוע אובייקטי מחרוזת אינם ניתנים לשינוי?
  • כיצד ליצור מחלקה בלתי ניתנת לשינוי?
  • מהי מאגר קבוע של מיתר?
  • איזה קוד נכתב על ידי המהדר אם אתה משרשר מחרוזת כלשהי על ידי + (אופרטור שרשור מחרוזת)?
  • מה ההבדל בין StringBuffer למחלקה StringBuilder?

מה נלמד בטיפול במיתרים?
  • מושג מיתר
  • מחרוזת בלתי ניתנת לשינוי
  • השוואת מחרוזות
  • שרשור מחרוזות
  • מושג משנה מחרוזת
  • שיטות מחלקות מחרוזות והשימוש בה
  • מחלקה StringBuffer
  • כיתה StringBuilder
  • יצירת מחלקה בלתי ניתנת לשינוי
  • שיטת toString().
  • שיעור StringTokenizer