המרת מערך תווים למחרוזת ב- Java

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

במדריך מהיר זה נסקור דרכים שונות להמיר מערך תווים ל- a חוּט בג'אווה.

2. בונה מיתרים

ה חוּט בכיתה יש קונסטרוקטור המקבל א לְהַשְׁחִיר מערך כטיעון:

@ מבחן פומבי בטל כאשר StringConstructor_thenOK () {char charr [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; מחרוזת מחרוזת = מחרוזת חדשה (charArray); assertThat (מחרוזת, היא ("baeldung")); }

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

3. String.valueOf ()

ואם כבר מדברים ערך של(), אנו יכולים אפילו להשתמש בו ישירות:

@ מבחן פומבי בטל כאשר StringValueOf_thenOK () {char charr [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; מחרוזת מחרוזת = String.valueOf (charArray); assertThat (מחרוזת, היא ("baeldung")); }

מחרוזת # copyValueOf היא שיטה אחרת המקבילה סמנטית ל- ערך של() השיטה אך הייתה בעלת משמעות כלשהי רק בכמה מהדורות ראשונות של Java. נכון להיום, ה copyValueOf () השיטה מיותרת ואנחנו לא ממליצים להשתמש בה.

4. StringBuilderשל toString ()

מה אם נרצה ליצור a חוּט ממערך של לְהַשְׁחִיר מערכים?

לאחר מכן, נוכל להפעיל תחילה א StringBuilder למשל ולהשתמש בו לצרף (char []) שיטה לצרף את כל התוכן יחד.

מאוחר יותר נשתמש ב- toString () שיטה להשיג את שלה חוּט יִצוּג:

@ מבחן ציבורי בטל כאשר StringBuilder_thenOK () {char char [] [] arrayOfCharArray = {{'b', 'a'}, {'e', 'l', 'd', 'u'}, {'n', 'g'}}; StringBuilder sb = StringBuilder חדש (); עבור (char [] subArray: arrayOfCharArray) {sb.append (subArray); } assertThat (sb.toString (), is ("baeldung")); }

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

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

עם Arrays.stream (אובייקט T []) בשיטה, אנו יכולים לפתוח זרם על פני מערך מסוג ט.

בהתחשב בכך שיש לנו אופי מַעֲרָך, אנחנו יכולים להשתמש ב- Collectors.joining () פעולה ליצירת א חוּט למשל:

@ מבחן ציבורי בטל כאשר StreamCollectors_thenOK () {תו אחרון [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; זרם charStream = Arrays.stream (charArray); מחרוזת מחרוזת = charStream.map (מחרוזת :: valueOf) .collect (Collectors.joining ()); assertThat (מחרוזת, היא ("baeldung")); }

האזהרה בגישה זו היא שאנחנו קוראים ל ערך של() מעל כל אחד אופי אלמנט וכך זה יהיה די איטי.

6. בסיס משותף לגויאבה נַגָר

בואו נגיד שהמחרוזת שאנחנו צריכים ליצור היא מחרוזת תוחמת. גויאבה נותנת לנו שיטה שימושית:

@ מבחן ציבורי בטל כאשר GuavaCommonBaseJoiners_thenOK () {תו אחרון [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; מחרוזת מחרוזת = Joiner.on ("|"). Join (charArray); assertThat (מחרוזת, היא ("b | a | e | l | d | u | n | g")); }

שוב, שים לב לכך ה לְהִצְטַרֵף() השיטה תקבל רק א אופי מערך ולא פרימיטיבי לְהַשְׁחִיר מַעֲרָך.

7. מסקנה

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

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


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