פצל מחרוזת ב- Java

1. הקדמה

פְּצִיחָה מיתרים היא פעולה תכופה מאוד; הדרכה מהירה זו מתמקדת בחלק ממשקי ה- API שבהם נוכל לעשות זאת בפשטות ב- Java.

2. String.split ()

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

הבה נבחן כמה דוגמאות. נתחיל בפיצול בפסיק:

מחרוזת [] מפוצלת = "פיטר, ג'יימס, תומאס". Split (",");

בואו נתפצל לפי מרחב לבן:

מחרוזת [] splitted = "קטנוע ג'יפים לרכב" .split ("");

בואו נחלק גם לפי נקודה:

מחרוזת [] מפוצלת = "192.168.1.178". Split ("\.")

בואו נתפצל במספר תווים - פסיק, רווח ומקף באמצעות regex:

מחרוזת [] מפוצלת = "b a, e, l.d u, n g". Split ("\ s + |, \ s * | \. \ s *"));

3. StringUtils.split ()

חבילת ה- Lang הנפוצה של אפאצ'י מספקת StringUtils מחלקה - שמכילה בטל בטל לְפַצֵל() שיטה המתפצלת באמצעות מרחב לבן כמפריד ברירת המחדל:

מחרוזת [] מפוצלת = StringUtils.split ("קטנוע ג'יפים לרכב");

יתר על כן, הוא מתעלם מרווחים נוספים:

מחרוזת [] מפוצלת = StringUtils.split ("קטנוע ג'יפים לרכב");

4. Splitter.split ()

לבסוף, יש נחמד ספליטר API שוטף גם בגויאבה:

רשימה resultList = Splitter.on (',') .trimResults () .omitEmptyStrings () .splitToList ("מכונית, ג'יפ, קטנוע"); 

5. פיצול וקיצוץ

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

נניח שיש לנו את זה כקלט:

קלט מחרוזת = "מכונית, ג'יפ, קטנוע";

כדי להסיר רווחים נוספים לפני ו / או אחרי המפריד, נוכל לבצע פיצול וקיצוץ באמצעות regex:

מחרוזת [] מפוצלת = input.trim (). פיצול ("\ s *, \ s *");

פה, מְטוּפָּח() השיטה מסירה רווחים מובילים ונגררים במחרוזת הקלט, וה- regex עצמו מטפל במרחבים הנוספים סביב התוחם.

אנו יכולים להשיג את אותה התוצאה באמצעות Java 8 זרם תכונות:

מחרוזת [] מפוצלת = Arrays.stream (input.split (",")) .map (String :: trim) .toArray (String [] :: new);

6. מסקנה

String.split () זה בדרך כלל מספיק. עם זאת, במקרים מורכבים יותר אנו יכולים להשתמש ב- commache-lang המבוסס על Apache StringUtils בכיתה, או ממשקי ה- API של גויאבה נקיים וגמישים.

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