מערך מחרוזות של Java למחרוזת

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

מערך מחרוזות של Java למחרוזת

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

package com.journaldev.util;

public class JavaStringArrayToString {

	public static void main(String[] args) {
		String[] strArr = new String[] {"1","2","3"};
		
		String str = strArr.toString();
		
		System.out.println("Java String array to String = "+str);
	}

}

התמונה למטה מראה את הפלט שנגרם על ידי התוכנית שלמעלה. הסיבה לפלט שלמעלה היא שקריאה ל toString() על המערך הולכת למחלקת Object האב שם היא מיושמת כך:

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

דוגמה להמרת מערך מחרוזות של Java למחרוזת**

אז איך להמיר מערך של מחרוזות למחרוזת ב-Java. אפשר להשתמש בשיטת Arrays.toString שקוראת לשיטת toString() על איברים יחידים ומשתמשת ב-StringBuilder כדי ליצור מחרוזת.

public static String toString(Object[] a) {
    if (a == null)
        return "null";

    int iMax = a.length - 1;
    if (iMax == -1)
        return "[]";

    StringBuilder b = new StringBuilder();
    b.append('[');
    for (int i = 0; ; i++) {
        b.append(String.valueOf(a[i]));
        if (i == iMax)
            return b.append(']').toString();
        b.append(", ");
    }
}

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

package com.journaldev.util;

import java.util.Arrays;

public class JavaStringArrayToString {

	public static void main(String[] args) {
		String[] strArr = new String[] { "1", "2", "3" };

		String str = Arrays.toString(strArr);
		System.out.println("Java String array to String = " + str);

		str = convertStringArrayToString(strArr, ",");
		System.out.println("Convert Java String array to String = " + str);

	}

	private static String convertStringArrayToString(String[] strArr, String delimiter) {
		StringBuilder sb = new StringBuilder();
		for (String str : strArr)
			sb.append(str).append(delimiter);
		return sb.substring(0, sb.length() - 1);
	}
}

לכן אם אנו משתמשים בשיטת toString() של מערך, היא מחזירה נתונים חסרי ערך. מחלקת Arrays של Java מספקת את toString(Object[] objArr) שעוברת על האיברים של המערך ומשתמשת ביישום toString() שלהם כדי להחזיר את הייצוג שלהם במחרוזת. לכן כאשר אנו משתמשים בפונקציה זו, אנו רואים שהיא מדפיסה את תוכן המערך וניתן להשתמש בה למטרות רישום. אם ברצונך לשלב את כל האיברים המחרוזתיים במערך המחרוזות עם מפריד מסוים, אז ניתן להשתמש בשיטת convertStringArrayToString(String[] strArr, String delimiter) שמחזירה את המחרוזת לאחר שילובם.

דוגמה להמרת מערך Java למחרוזת

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

package com.journaldev.util;

import java.util.Arrays;

public class JavaArrayToString {

	public static void main(String[] args) {
		A[] arr = { new A("1"), new A("2"), new A("3") };

		// שיטת toString () ברירת המחדל 
		System.out.println(arr.toString());

		// שימוש ב- Arrays.toString () להדפסת תוכן מערך אובייקטים 
		System.out.println(Arrays.toString(arr));

		// המרת מערך אובייקטים למחרוזת 
		System.out.println(convertObjectArrayToString(arr, ","));
	}

	private static String convertObjectArrayToString(Object[] arr, String delimiter) {
		StringBuilder sb = new StringBuilder();
		for (Object obj : arr)
			sb.append(obj.toString()).append(delimiter);
		return sb.substring(0, sb.length() - 1);

	}

}

class A {
	private String name;

	public A(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		System.out.println("A toString() method called!!");
		return this.name;
	}
}

הפלט שנוצר על ידי תוכנית הדוגמה למחרוזת של מערך Java ל- String הוא:

[Lcom.journaldev.util.A;@7852e922
A toString() method called!!
A toString() method called!!
A toString() method called!!
[1, 2, 3]
A toString() method called!!
A toString() method called!!
A toString() method called!!
1,2,3

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

אתה יכול לבדוק דוגמאות נוספות של ג'אווה מרכזית מה מאגר הקוד שלנו ב- GitHub.

הפנייה: מסמך API של Java Arrays toString

Source:
https://www.digitalocean.com/community/tutorials/java-string-array-to-string