Java String Array naar String

Vandaag zullen we bekijken hoe we een Java String-array naar een String kunnen converteren. Soms moeten we een String-array omzetten naar een String voor specifieke vereisten. Bijvoorbeeld; we willen de inhoud van de array loggen of we moeten waarden van de String-array naar een String converteren en andere methoden aanroepen.

Java String Array naar String

Meestal roepen we de toString()-methode van een Object aan om de String-weergave te verkrijgen. Laten we eens kijken wat er gebeurt als we de toString()-methode aanroepen op een String-array in 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);
	}

}

De onderstaande afbeelding toont de output die wordt geproduceerd door het bovenstaande programma. De reden voor de bovenstaande output is omdat de oproep naar toString() op de array naar de Object-superklasse gaat, waar het geïmplementeerd is zoals hieronder.

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

Java String Array naar String Voorbeeld

Dus hoe converteer je een String-array naar een String in Java. We kunnen de Arrays.toString-methode gebruiken die de toString() methode oproept op individuele elementen en een StringBuilder gebruikt om een String te maken.

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(", ");
    }
}

We kunnen ook onze eigen methode maken om een String-array naar een String te converteren als we specifieke opmaakeisen hebben. Hieronder staat een eenvoudig programma dat deze methoden in actie toont en de geproduceerde uitvoer.

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);
	}
}

Dus als we de array toString()-methode gebruiken, krijgen we nutteloze gegevens. De Java Arrays-klasse biedt toString(Object[] objArr) die over de elementen van de array loopt en hun toString()-implementatie gebruikt om de String-representatie van de array terug te geven. Daarom, wanneer we deze functie gebruiken, kunnen we zien dat het de inhoud van de array afdrukt en het kan worden gebruikt voor loggingdoeleinden. Als je alle String-elementen in de String-array wilt combineren met een specifieke delimiter, dan kun je de convertStringArrayToString(String[] strArr, String delimiter)-methode gebruiken die de String retourneert na het combineren ervan.

Voorbeeld van Java-array naar String

Nu laten we onze String-array naar String-voorbeeld uitbreiden om te gebruiken met andere aangepaste klassen. Hier is de implementatie.

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") };

		// Standaard toString() methode

		System.out.println(arr.toString());

		// Arrays.toString() gebruiken om de inhoud van de objectarray af te drukken

		System.out.println(Arrays.toString(arr));

		// Objectarray converteren naar String

		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;
	}
}

De output geproduceerd door het bovenstaande Java-array naar String-voorbeeldprogramma is;

[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

We hebben gekeken hoe je een Java String-array naar String kunt converteren en het hebt uitgebreid om te gebruiken met aangepaste objecten. Dat is alles voor het converteren van een Java-array naar String.

Je kunt meer kernvoorbeelden van Java bekijken in onze GitHub Repository.

Referentie: Java Arrays toString API Doc

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