המרת רשימה למחרוזת ב- Java

1. הקדמה

במאמר מהיר זה, נבחן כיצד להמיר a רשימה של אלמנטים ל- a חוּט. זה עשוי להיות שימושי בתרחישים מסוימים כמו הדפסת התוכן למסוף בצורה קריאה לבדיקה / ניפוי באגים.

2. סטנדרטי toString () על רשימה

אחת הדרכים הפשוטות ביותר היא פשוט להתקשר ל toString () שיטה על רשימה:

@Test ציבורי בטל כאשר ListToString_thenPrintDefault () {List intLIst = Arrays.asList (1, 2, 3); System.out.println (intLIst); }

תְפוּקָה:

[1, 2, 3]

טכניקה זו משתמשת באופן פנימי ב- toString () שיטת סוג האלמנטים בתוך רשימה. במקרה שלנו, אנו משתמשים ב- מספר שלם סוג שיש לו יישום נכון של toString () שיטה.

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

[[מוגן באמצעות דוא"ל], [מוגן באמצעות דוא"ל], [מוגן באמצעות דוא"ל]]

3. יישום מותאם אישית באמצעות אספנים

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

בהשוואה לדוגמא הקודמת, בואו נחליף את הפסיק (,) במקף (-) ובסוגריים המרובעים ([,]) בסט סוגריים מסולסלים ({,}):

@ מבחן ציבורי בטל כאשר CollectorsJoining_thenPrintCustom () {List intList = Arrays.asList (1, 2, 3); תוצאת מחרוזת = intList.stream () .map (n -> String.valueOf (n)) .collect (Collectors.joining ("-", "{", "}")); System.out.println (תוצאה); }

תְפוּקָה:

{1-2-3}

ה Collectors.joining () השיטה דורשת CharSequenceאז אנחנו צריכים מַפָּה ה מספר שלם ל חוּט. ניתן להשתמש באותו רעיון במקרה של כל מחלקה אחרת גם כשאין לנו גישה לקוד של אותה מחלקה.

4. שימוש בספרייה חיצונית

כעת נראה את השימוש ב- Apache Commons StringUtils בכיתה כדי להשיג את התוצאות הדומות.

4.1. תלות של Maven

 org.apache.commons commons-lang3 3.6 

הגרסה האחרונה של התלות נמצאת כאן.

4.2. יישום

היישום הוא ממש קריאת שיטה אחת:

@ מבחן ציבורי בטל כאשר StringUtilsJoin_thenPrintCustom () ")); 

תְפוּקָה:

1|2|3

שוב, יישום זה תלוי באופן פנימי ב toString () יישום מהסוג שאנו שוקלים.

5. מסקנה

במאמר זה ראינו כמה קל להמיר a רשימה אל א חוּט תוך שימוש בטכניקות שונות.

כמו תמיד, ניתן למצוא את קוד המקור המלא של מאמר זה ב- GitHub.


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