본문 바로가기

Java

자바 String을 Char로, Char를 String으로 변환하기

Char (Character)를 String 으로, String을 Char로 변환하기

문제를 해결해나가다 보면 String을 Char로 변환해 아스키코드 등으로 연산을 마친 후 다시 String타입으로 리턴하고 싶을 때가 많다. 
여러 방법을 소개한다.

 1. char형 array를 하나씩 꺼내 Character.toString으로 변환

1
2
3
4
5
6
7
8
String temp = "캐릭터 변환하기";
char[] array = temp.toCharArray();
String change = "";
            
for (int j = 0; j < array.length; j++) {
    change+= Character.toString(array[j]);
}
System.out.println(change);
cs

 >>캐릭터 변환하기


String의 toCharArray()를 이용해 char[] 배열로 작업한 뒤 반복문을 이용해 하나씩 다시 String에 넣어주는 과정이다. 
이보다 더 간편한 방법이 있다.

2. 캐릭터형 배열 char[] 를 바로 String으로 변환

String.valueOf() 메소드에 매개변수로 char[]를 넣으면, String으로 곧바로 변환해준다.

(이놈)

1
2
3
char[] ary = {'a','b','c','d','e'};
String arrayString = String.valueOf(ary);
System.out.println(arrayString);
cs

>>abcde

3. String 클래스의 생성자 이용하기.

String도 결국 클래스이므로 String str = new String("가나다"); 와 같은 선언이 가능한데,
String의 생성자에 간편한 옵션이 존재한다.
String을 선언할 때 파라미터로 char[]를 넣을 수 있고 인덱스도 정할 수 있다.

new String(char[] value, int offset, int count)
1
2
change = new String(array, 15);
System.out.println(change);
cs

>> 릭터 변환

.subString() 처럼 시작과 끝 인덱스를 넣어주면 된다.

4. 한 글자일때

1
2
String change1 = "";
char cr ='A';
cs

Charater.toString() :

한 글자일때는 .toString()이 잘 먹힌다.
1
change1 = Character.toString(cr);
cs

String.valueOf() :

valueOf()도 위와 클래스가 String이냐 Character냐만 다를 뿐 결과는 같다.
참고로 .toString()에 null값이 들어오면 Null Pointer Exception이 뜨지만
String.valueOf()는 null 문자열을 리턴한다.
1
change1 = String.valueOf(cr);
cs

Character 객체 생성후 toString() :

1
2
change1 = new Character(cr).toString();
System.out.println(change1);
cs

 >>A