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, 1, 5); 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 |