עדכוני API למחרוזות ב- Java 12
1. הקדמה
Java 12 הוסיף כמה ממשקי API שימושיים ל- חוּט מעמד. במדריך זה נחקור את ממשקי ה- API החדשים הללו עם דוגמאות.
2. לְשַׁנֵן()
ה לְשַׁנֵן() השיטה מתאימה את הכניסה של כל שורה במחרוזת על סמך הטיעון שהועבר אליה.
מתי לְשַׁנֵן() נקרא במחרוזת, הפעולות הבאות נעשות:
- המחרוזת מופרדת רעיונית לקווים באמצעות שורות(). שורות() הוא ה- API של String שהוצג ב- Java 11.
- לאחר מכן, כל שורה מותאמת בהתאם ל int טַעֲנָה נ הועבר אליו ואז הוסף לו הזנת שורה "\ n".
- אם נ > 0, אם כן נ רווחים מוכנסים בתחילת כל שורה.
- אם נ<0, אם כן עד לנ תווי רווח לבן מוסרים מתחילת כל שורה. במקרה ששורה מסוימת אינה מכילה מספיק שטח לבן, אזי כל התווים המובילים של הרווח הלבן יוסרו.
- אם נ == 0, ואז הקו נשאר ללא שינוי. עם זאת, מסופי הקו עדיין מנורמלים.
- לאחר מכן משורשרים השורות המתקבלות ומחזירות אותם.
לדוגמה:
@ מבחן ציבורי בטל כאשרPositiveArgument_thenReturnIndentedString () {String multilineStr = "זהו \ נא רב קו \ nstring."; מחרוזת outputStr = "זהו \ n מחרוזת רב-קו. \ N"; מחרוזת postIndent = multilineStr.indent (3); assertThat (postIndent, equalTo (outputStr)); }
אנחנו יכולים גם לעבור שלילי int כדי להפחית את כניסת המחרוזת. לדוגמה:
@ מבחן ציבורי בטל כאשר NegativeArgument_thenReturnReducedIndentedString () {String multilineStr = "זה \ n מחרוזת \ n \" רב-קו. "; מחרוזת outputStr = "זהו \ n מחרוזת רב-קו. \ N"; מחרוזת postIndent = multilineStr.indent (-2); assertThat (postIndent, equalTo (outputStr)); }
3. שינוי צורה()
אנחנו יכולים להחיל פונקציה על זֶה מחרוזת באמצעות שינוי צורה() שיטה. על הפונקציה לצפות לסינגל חוּט ויכוח ולהפיק תוצאה:
@Test הציבור בטל כאשרTransformUsingLamda_thenReturnTransformedString () {String result = "שלום" .transform (קלט -> קלט + "עולם!"); assertThat (תוצאה, equalTo ("שלום עולם!")); }
אין צורך שהפלט צריך להיות מחרוזת. לדוגמה:
@Test הציבור בטל כאשרTransformUsingParseInt_thenReturnInt () {int result = "42" .transform (Integer :: parseInt); assertThat (תוצאה, שווה ל- (42)); }
4. מסקנה
במאמר זה בחנו את החדש חוּט ממשקי API ב- Java 12. כרגיל, ניתן למצוא קטעי קוד ב- GitHub.