String() 생성자를 이용한 방법 - String()
- 문자형 배열을 String() 생성자의 인자로 전달하여 문자열 타입을 얻을 수 있다.
- String 생성자를 이용하기 때문에 String 타입의 참조 변수를 선언해야 한다.
코드
public class Main {
public static void main(String[] args) {
// 문자열으로 변환할 문자형 배열 = Hello Java
char[] charArr = new char[]{'H','e','l','l','o',' ','J','a','v','a'};
// String()생성자를 이용하여 문자열로 변환
String str = new String(charArr);
// 결과 출력 비교
System.out.println("변환 전(문자형 배열) : " + Arrays.toString(charArr));
System.out.println("변환 후(문자열) : " + str.toString());
}
}
메서드를 이용한 방법 - String.copyValueOf(char[] arr) - String
- Java.lang.String 클래스의 String.copyValueOf() 메서드를 이용해 문자형 배열을 문자열로 변환할 수 있다.
- String.copyValueOf(char[] arr) 메서드는 인자로 받은 문자형 배열을 문자열로 반환해주는 메서드
- 따라서 반환되는 값을 담을 String 타입의 참조 변수가 필요하다.
코드
public class Main {
public static void main(String[] args) {
// 문자열으로 변환할 문자형 배열 = Hello Java
char[] charArr = new char[]{'H','e','l','l','o',' ','J','a','v','a'};
// String.copyValueOf(char[] data)를 이용하여 문자열로 변환
String str = String.copyValueOf(charArr);
// 결과 출력 비교
System.out.println("변환 전(문자형 배열) : " + Arrays.toString(charArr));
System.out.println("변환 후(문자열) : " + str.toString());
}
}
메서드를 이용한 방법 - String.valueOf(char[] data) - String
- Java.lang.String 클래스의 String.valueOf() 메서드를 이용해 문자형 배열을 문자열로 변환할 수 있다.
- String.valueOf(char[] data) 메서드는 인자로 받은 문자형 배열을 문자열로 반환해주는 메서드
- 따라서 반환되는 값을 담을 String 타입의 참조 변수가 필요하다.
코드
public class Test {
public static void main(String[] args) {
// 문자열으로 변환할 문자형 배열 = Hello Java
char[] charArr = new char[]{'H','e','l','l','o',' ','J','a','v','a'};
// String.valueOf(char[] data)를 이용하여 문자열로 변환
String str = String.valueOf(charArr);
// 결과 출력 비교
System.out.println("변환 전(문자형 배열) : " + Arrays.toString(charArr));
System.out.println("변환 후(문자열) : " + str.toString());
}
}
반복문을 이용한 방법 - for 문, for - each 문, while 문
- 반복문을 이용하여 문자형 배열을 문자열로 변환할 수 있다.
- String 타입은 불변이므로 문자형을 추가하기에는 적합하지 않아 문자를 담을 변수로 StringBuilder 타입으로 선언함.
- 반복문을 통해 배열의 0번째 인덱스부터 끝까지 반복하여 배열의 값들을 StringBuilder에 추가한다.
코드
public class Main {
public static void main(String[] args) {
// 문자열으로 변환할 문자형 배열 = Hello Java
char[] charArr = new char[]{'H','e','l','l','o',' ','J','a','v','a'};
// 문자형 타입을 담기 위해 StringBuilder 타입의 sb 생성
StringBuilder sb = new StringBuilder();
// for - Each 문으로 차례대로 sb에 추가함.
for (char chr: charArr){
sb.append(chr);
}
// 결과 출력 비교
System.out.println("변환 전(문자형 배열) : " + Arrays.toString(charArr));
System.out.println("변환 후(문자열) : " + sb.toString());
}
}
String.valueOf(char[] data) vs String.copyValueOf(char [] data) 차이점
작성하다가 갑자기 둘의 차이가 뭘까 궁금해서 찾아본 바로는 둘의 차이점은 많은 사람들이 최신 버전 Java 기준으로 없다고 한다..
편한 걸로 사용하면 될 듯 하다..
Reference
https://stackoverflow.com/questions/48134493/java-valueof-vs-copyvalueof
Java: valueOf vs copyValueOf
What is the difference between valueOf and copyValueOf. I looked on GrepCode, only to find that both return the exact same thing. copyValueOf: Parameters: data the character array. Retur...
stackoverflow.com
'Langauge > Java' 카테고리의 다른 글
[Java] 문자열 문자열 배열로 변환(String to StringArray) (0) | 2022.08.09 |
---|---|
[Java] 문자열을 문자형 배열로 변환 (String to CharArray) (0) | 2022.08.08 |