מערך להמרות מחרוזת

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

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

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

2. המרת מערך למחרוזת

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

יישום ברירת המחדל של ה- toString () שיטה במערך מחזירה משהו כמו Ljava.lang.String; @ 74a10858 אשר רק מודיע לנו על סוג האובייקט וקוד ה- hash.

אולם, ה java.util. מערכים מחלקת השירות תומכת במניפולציה של מערכים ומחרוזות, כולל toString () שיטה למערכים.

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

מחרוזת [] strArray = {"one", "two", "three"}; מחרוזת joinedString = Arrays.toString (strArray); assertEquals ("[אחד, שניים, שלושה]", הצטרף למחרוזת);
int [] intArray = {1,2,3,4,5}; joinedString = Arrays.toString (intArray); assertEquals ("[1, 2, 3, 4, 5]", joinedString);

וזה אמנם נהדר שה- Arrays.toString (int []) שיטה מכפתרת את המשימה הזו כל כך יפה עבורנו, נשווה אותה לשיטות שונות שנוכל ליישם לבד.

2.1. StringBuilder.append ()

כדי להתחיל, בואו נסתכל כיצד לבצע המרה זו באמצעות StringBuilder.append ():

מחרוזת [] strArray = {"המר", "מערך", "עם", "ג'אווה"}; StringBuilder stringBuilder = StringBuilder חדש (); עבור (int i = 0; i <strArray.length; i ++) {stringBuilder.append (strArray [i]); } מחרוזת joinedString = stringBuilder.toString (); assertEquals ("ConvertArrayWithJava", joinedString);

בנוסף, כדי להמיר מערך של מספרים שלמים, נוכל להשתמש באותה גישה אלא במקום להתקשר Integer.valueOf (intArray [i]) כאשר מצרפים את שלנו StringBuilder.

2.2. ממשק API של Java Streams

Java 8 ומעלה מציע את String.join () שיטה המייצרת מחרוזת חדשה על ידי חיבור אלמנטים והפרדתם עם המפריד שצוין, במקרה שלנו פשוט מחרוזת ריקה:

String joinedString = String.join ("", מחרוזת חדשה [] {"המר", "With", "Java", "Streams"}); assertEquals ("ConvertWithJavaStreams", joinedString);

בנוסף, אנו יכולים להשתמש ב- Collectors.joining () שיטה מממשק ה- API של Java Streams שמצטרף למחרוזות מה- זרם באותו סדר כמו מערך המקור שלו:

String joinedString = Arrays .stream (מחרוזת חדשה [] {"Convert", "With", "Java", "Streams"}) .collect (Collectors.joining ()); assertEquals ("ConvertWithJavaStreams", joinedString);

2.3. StringUtils.join ()

ואפצ'י קומונס לאנג לעולם לא יישאר מחוץ למשימות כמו אלה.

ה StringUtils בכיתה יש כמה StringUtils.join () שיטות בהן ניתן להשתמש כדי לשנות מערך מחרוזות למחרוזת אחת:

String joinedString = StringUtils.join (מחרוזת חדשה [] {"המרה", "עם", "אפאצ'י", "Commons"}); assertEquals ("ConvertWithApacheCommons", joinedString);

2.4. Joiner.join ()

ולא להתעלם ממנה, גויאבה מתאים לאותו הדבר עם שלו נַגָר מעמד. ה נַגָר class מציע ממשק API שוטף ומספק קומץ שיטות עוזר להצטרפות לנתונים.

לדוגמה, אנו יכולים להוסיף מפריד או לדלג על ערכי null:

String joinedString = Joiner.on ("") .skipNulls () .join (מחרוזת חדשה [] {"המר", "With", "Guava", null}); assertEquals ("ConvertWithGuava", joinedString);

3. המרת מחרוזת למערך מיתרים

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

3.1. String.split ()

ראשית, נתחיל בפיצול המרחב הלבן באמצעות ה- String.split () שיטה ללא תיחום:

מחרוזת [] strArray = "loremipsum" .split ("");

מה שמייצר:

["l", "o", "r", "e", "m", "i", "p", "s", "u", "m"]

3.2. StringUtils.split ()

שנית, בואו נסתכל שוב על ה- StringUtils כיתה מספריית Commons Lang של אפאצ'י.

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

מחרוזת [] מפוצלת = StringUtils.split ("lorem ipsum dolor sit amet");

מה שמביא ל:

["לורם", "ipsum", "dolor", "sit", "amet"]

אבל, אנחנו יכולים גם לספק תיחום אם נרצה.

3.3. Splitter.split ()

לבסוף, אנו יכולים גם להשתמש גויאבה עם שלה ספליטר ממשק API שוטף:

List resultList = Splitter.on ('') .trimResults () .omitEmptyStrings () .splitToList ("lorem ipsum dolor sit amet"); מחרוזת [] strArray = resultList.toArray (מחרוזת חדשה [0]);

מה שמייצר:

["לורם", "ipsum", "dolor", "sit", "amet"]

4. מסקנה

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

כמובן שניתן למצוא את היישום של כל הדוגמאות וקטעי הקוד ב- GitHub.


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