המרת מחרוזת מופרדת באמצעות פסיקים לרשימה ב- Java

1. סקירה כללית

במדריך זה נבחן המרה של הפרדת פסיקים חוּט לתוך רשימה של מיתרים. בנוסף, אנו נהפוך הפרדה בפסיקים חוּט של מספרים שלמים ל- a רשימה שֶׁל שלמים.

2. תלות

כמה מהשיטות בהן נשתמש להמרות שלנו דורשות ספריות Apache Commons Lang 3 ו- Guava. אז בואו נוסיף אותם ל pom.xml קוֹבֶץ:

 org.apache.commons commons-lang3 3.8.1 com.google.guava גויאבה 27.0.1-jre 

3. הגדרת הדוגמה שלנו

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

מדינות מחרוזות = "רוסיה, גרמניה, אנגליה, צרפת, איטליה"; דרגות מחרוזות = "1,2,3,4,5,6,7";

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

רשימת convertCountriesList; רשימה convertRankList;

לבסוף, לאחר שנבצע את ההמרות שלנו, התפוקות הצפויות יהיו:

רשימה expectCountriesList = Arrays.asList ("רוסיה", "גרמניה", "אנגליה", "צרפת", "איטליה"); רשימת expectRanksList = Arrays.asList (1, 2, 3, 4, 5, 6, 7);

4. ליבת ג'אווה

בפתרון הראשון שלנו, נמיר מחרוזת לרשימת מחרוזות ומספרים שלמים באמצעות Java הליבה.

ראשית, נחלק את המחרוזת שלנו למערך מחרוזות באמצעות לְפַצֵל, א חוּט שיטת כלי מחלקה. ואז נשתמש Arrays.asList על מערך המיתרים החדש שלנו להמיר אותו לרשימת מחרוזות:

רשימה convertCountriesList = Arrays.asList (country.split (",", -1));

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

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

מחרוזת [] convertRankArray = ranks.split (","); רשימה convertRankList = ArrayList חדש (); עבור (מספר מחרוזת: convertRankArray) {convertRankList.add (Integer.parseInt (number.trim ())); }

בשני המקרים הללו אנו משתמשים ב- לְפַצֵל שיטת השירות מה- חוּט מחלקה לפיצול המחרוזת המופרדת בפסיקים למערך מחרוזות.

שים לב שהעומס יתר על המידה לְפַצֵל שיטה המשמשת להמרת שלנו מדינות מחרוזת מכילה את הפרמטר השני לְהַגבִּיל, עבורם סיפקנו את הערך כ -1. זה מציין שיש להחיל את דפוס ההפרדה כמה שיותר פעמים.

ה לְפַצֵל שיטה בה השתמשנו לפיצול מחרוזת המספרים השלמים שלנו (מדרגות) משתמש באפס כ- לְהַגבִּילוכך הוא מתעלם מהחוטים הריקים ואילו ה לְפַצֵל משמש על מדינות מחרוזת שומרת על מחרוזות ריקות במערך המוחזר.

5. זרמי ג'אווה

כעת נבצע אותן המרות באמצעות ה- API של Java Stream.

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

רשימה convertCountriesList = Stream.of (country.split (",", -1)) .collect (Collectors.toList ());

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

שוב נמיר תחילה את מחרוזת המספרים למערך מחרוזות באמצעות ה- לְפַצֵל שיטה ולהמיר את המערך שנוצר ל- זרם שֶׁל חוּט משתמש ב שֶׁל() שיטה ב זרם מעמד.

ואז, אנחנו לקצץ את החללים המובילים והנגררים מכל אחד מהם חוּט על זרם באמצעות מפה (מחרוזת::מְטוּפָּח).

לאחר מכן, נגיש בקשה מפה (מספר שלם :: parseInt) בזרם שלנו להמיר כל מחרוזת שלנו זרם ל מספר שלם.

ולבסוף, אנחנו נתקשר collect (Collectors.toList ()) על זרם להמיר אותו לרשימת מספרים שלמים:

רשימה convertRankList = Stream.of (ranks.split (",")) .map (String :: trim) .map (Integer :: parseInt) .collect (Collectors.toList ());

6. אפאצ'י קומונס לאנג

בפתרון זה נשתמש בספריית Apache Commons Lang3 לביצוע ההמרות שלנו. Apache Commons Lang3 מספק מספר פונקציות עוזר כדי לתפעל שיעורי Java מרכזיים.

ראשית, נחלק את המחרוזת שלנו למערך מחרוזות באמצעות StringUtils.splitPreserveAllTokens. לאחר מכן נמיר את מערך המיתרים החדש שלנו לרשימה באמצעות Arrays.asList שיטה:

רשימה convertCountriesList = Arrays.asList (StringUtils.splitPreserveAllTokens (מדינות, ","));

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

נשתמש שוב ב- StringUtils.split שיטה ליצור מערך מחרוזות מהמחרוזת שלנו. לאחר מכן נמיר כל מחרוזת במערך החדש שלנו למספר שלם באמצעות Integer.parseInt והוסף לרשימה שלנו את המספר השלם המומר:

מחרוזת [] convertRankArray = StringUtils.split (דרגות, ","); רשימה convertRankList = ArrayList חדש (); עבור (מספר מחרוזת: convertRankArray) {convertRankList.add (Integer.parseInt (number.trim ())); } 

בדוגמה זו השתמשנו ב- splitPreserveAllTokens שיטה לפצל את שלנו מדינות מחרוזת, ואילו השתמשנו ב- לְפַצֵל שיטה לפצל את שלנו מדרגות חוּט.

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

לכן, אם יש לנו מחרוזות ריקות שאנחנו רוצים שייכללו ברשימה שלנו, עלינו להשתמש ב splitPreserveAllTokens במקום לְפַצֵל.

7. גויאבה

לבסוף נשתמש בספריית גויאבה כדי להמיר את המיתרים שלנו לרשימות המתאימות שלהם.

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

ואז נשתמש ב- trimResults שיטה על שלנו ספליטר למשל. פעולה זו תתעלם מכל החללים הלבנים המובילים והנגררים מן המצעים שנוצרו.

לבסוף נשתמש ב- splitToList שיטה לפצל את מחרוזת הקלט שלנו ולהמיר אותה לרשימה:

רשימה convertCountriesList = Splitter.on (",") .trimResults () .splitToList (מדינות);

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

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

ואז נשתמש ב- רשימות.שינוי צורה שיטה, המקבלת את רשימת המיתרים שלנו כפרמטר הראשון ליישום ה- פוּנקצִיָה ממשק כפרמטר השני.

ה פוּנקצִיָה יישום ממשק ממיר כל מחרוזת ברשימה למספר שלם:

רשימה convertRankList = Lists.transform (Splitter.on (",") .trimResults () .splitToList (דרגות), פונקציה חדשה () {@Override ציבורי שלם חל (קלט מחרוזת) {return Integer.parseInt (input.trim () );}}); 

8. מסקנה

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

כמו תמיד, הקוד ממאמר זה זמין באתר Github.