פעולות מחרוזת נפוצות בג'אווה

1. הקדמה

ערכים ופעולות מבוססות מחרוזות שכיחים למדי בפיתוח יומיומי, וכל מפתח Java חייב להיות מסוגל להתמודד איתם.

במדריך זה נספק גיליון בגידות מהיר של נפוץ חוּט פעולות.

בנוסף, נשפוך מעט אור על ההבדלים בין שווים ו "==" ובין לבין StringUtils # isBlank ו- #זה ריק.

2. הפיכת צ'אר למחרוזת

א לְהַשְׁחִיר מייצג תו אחד ב- Java. אבל ברוב המקרים, אנחנו צריכים חוּט.

אז בואו נתחיל עם שינוי לְהַשְׁחִירs לתוך חוּטס:

String toStringWithConcatenation (char char final) {return String.valueOf (c); }

3. הוספת מיתרים

פעולה נוספת שנדרשת לעיתים קרובות היא הוספת מחרוזות עם ערכים אחרים, כמו a לְהַשְׁחִיר:

מחרוזת appendWithConcatenation (קידומת מחרוזת סופית, תו סופי c) {קידומת חזרה + c; }

אנו יכולים להוסיף סוגים בסיסיים אחרים באמצעות StringBuilder גם כן:

מחרוזת appendWithStringBuilder (קידומת מחרוזת סופית, תו סופי c) {להחזיר StringBuilder חדש (קידומת) .append (c) .toString (); }

4. קבלת דמות לפי אינדקס

אם עלינו לחלץ תו אחד מתוך מחרוזת, ה- API מספק את כל מה שאנחנו רוצים:

char getCharacterByIndex (טקסט מחרוזת סופי, אינדקס int סופי) {return text.charAt (index); }

מאז חוּט משתמש ב- לְהַשְׁחִיר[] כמבנה נתוני גיבוי, המדד מתחיל מאפס.

5. טיפול בערכי ASCII

אנו יכולים לעבור בקלות בין א לְהַשְׁחִיר והייצוג המספרי שלה (ASCII) על ידי ליהוק:

int asciiValue (תו אחרון אחרון) {דמות חזרה (int); } char fromAsciiValue (value int final) {Assert.isTrue (value> = 0 && value <65536, "value is not a valid character"); ערך החזר (char); }

כמובן, מאז int הוא 4 בתים לא חתומים ו- לְהַשְׁחִיר הוא שני בתים לא חתומים, עלינו לבדוק כדי לוודא שאנחנו עובדים עם ערכי אופי משפטי.

6. הסרת כל מרחב הלבן

לפעמים אנחנו צריכים להיפטר מכמה תווים, לרוב רווחים לבנים. א הדרך הטובה היא להשתמש ב- החלף הכל שיטה עם ביטוי קבוע:

מחרוזת removeWhiteSpace (טקסט מחרוזת סופי) {return text.replaceAll ("\ s +", ""); }

7. הצטרפות לאוספים למחרוזת

מקרה שימוש נפוץ נוסף הוא כשיש לנו סוג כזה של אוסף ורוצים ליצור ממנו מחרוזת:

 String fromCollection (אוסף האוסף הסופי) {return collection.stream (). מפה (אובייקטים :: toString) .collect (Collectors.joining (",")); }

שימו לב שה- אספנים. מצטרפים מאפשר ציון הקידומת או הסיומת.

8. פיצול מחרוזת

או מצד שני, אנו יכולים לפצל מחרוזת על ידי מפריד באמצעות ה- לְפַצֵל שיטה:

מחרוזת [] splitByRegExPipe (טקסט מחרוזת סופי) return text.split ("\

שוב, אנו משתמשים בביטוי קבוע כאן, הפעם לפיצול באמצעות צינור. מכיוון שאנחנו רוצים להשתמש בתו מיוחד, עלינו לברוח ממנו.

אפשרות נוספת היא להשתמש ב- תבנית מעמד:

מחרוזת [] splitByPatternPipe (טקסט מחרוזת סופי) ")); 

9. עיבוד כל הדמויות כזרם

במקרה של עיבוד מפורט, נוכל להפוך מחרוזת ל- IntStream:

IntStream getStream (טקסט מחרוזת סופי) {return text.chars (); }

10. שיוויון התייחסות ושוויון ערכי

למרות שחוטים נראים כמו סוג פרימיטיבי, הם לא.

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

@ מבחן ציבורי בטל כאשר משתמשת Equals_thenWeCheckForTheSameValue () {assertTrue ("הערכים שווים", מחרוזת חדשה ("מבחן"). שווה ("מבחן")); } @Test ציבורי בטל כאשרUsingEqualsSign_thenWeCheckForReferenceEquality () {assertFalse ("הפניות אינן שוות", מחרוזת חדשה ("מבחן") == "מבחן"); }

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

@ מבחן ציבורי בטל כאשרTheCompileCanBuildUpAString_thenWeGetTheSameReference () {assertTrue ("ספרות משורשרות על ידי המהדר", "Test" == "Te" + "st"); }

11. מחרוזת ריקה מול מחרוזת ריקה

יש הבדל עדין בין ריק ו זה ריק.

מחרוזת ריקה אם היא ריק או שאורכו אפס. ואילו מחרוזת ריקה אם היא אפסה או מכילה רק תווים לבנים:

@ מבחן ציבורי בטל כאשר משתמשIsEmpty_thenWeCheckForNullorLengthZero () {assertTrue ("null ריק", isEmpty (null)); assertTrue ("שום דבר אינו ריק", isEmpty ("")); assertFalse ("המרחב הלבן אינו ריק", הוא ריק ("")); assertFalse ("שטח לבן אינו ריק", isEmpty ("\ n")); assertFalse ("המרחב הלבן אינו ריק", הוא ריק ("\ t")); assertFalse ("הטקסט אינו ריק", isEmpty ("כל דבר!")); } @Test הציבור בטל כאשר משתמשIsBlank_thenWeCheckForNullorOnlyContainingWhitespace () {assertTrue ("null ריק", isBlank (null)); assertTrue ("שום דבר לא ריק", isBlank ("")); assertTrue ("המרחב הריק ריק", isBlank ("\ t \ t \ t \ n \ r")); assertFalse ("הבדיקה אינה ריקה", isBlank ("כל דבר!")); }

12. מסקנה

מיתרים הם סוג ליבה בכל מיני יישומים. במדריך זה למדנו כמה פעולות מרכזיות בתרחישים נפוצים.

יתר על כן, נתנו הוראות להפניות מפורטות יותר.

לבסוף, הקוד המלא עם כל הדוגמאות זמין במאגר GitHub שלנו.


$config[zx-auto] not found$config[zx-overlay] not found