המרת רשימה למחרוזת ב- 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.