웹사이트 검색

Java 문자열 배열을 문자열로


오늘은 Java 문자열 배열을 문자열로 변환하는 방법을 살펴보겠습니다. 특정 요구 사항에 따라 문자열 배열을 문자열로 변환해야 하는 경우가 있습니다. 예를 들어; 배열 내용을 기록하거나 문자열 배열의 값을 문자열로 변환하고 다른 메서드를 호출해야 합니다.

Java 문자열 배열을 문자열로

대부분의 경우 객체의 toString() 메서드를 호출하여 String 표현을 얻습니다. Java에서 String 배열에 대해 toString() 메서드를 호출하면 어떤 일이 발생하는지 봅시다.

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

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

Java 문자열 배열에서 문자열로의 예

따라서 Java에서 문자열 배열을 문자열로 변환하는 방법. 개별 요소에서 toString() 메서드를 호출하고 StringBuilder를 사용하여 문자열을 생성하는 Arrays.toString 메서드를 사용할 수 있습니다.

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

Java 배열에서 문자열로의 예

이제 String 배열을 String 예제로 확장하여 다른 사용자 정의 클래스와 함께 사용하겠습니다. 구현은 다음과 같습니다.

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

		// default toString() method
		System.out.println(arr.toString());

		// using Arrays.toString() for printing object array contents
		System.out.println(Arrays.toString(arr));

		// converting Object Array to 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;
	}
}

위의 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 문자열 배열을 문자열로 변환하는 방법을 살펴본 다음 사용자 지정 개체와 함께 사용하도록 확장했습니다. 이것이 자바 배열을 문자열로 변환하기 위한 전부입니다.

GitHub 리포지토리에서 더 많은 핵심 Java 예제를 확인할 수 있습니다.

참조: 자바 배열 toString API 문서