Java프로그래밍

[Java] String 문자열을 쪼개서 배열에 넣는 방법 ( String  char[] 변환 총정리 :: charAt(), toCharArray() 등)


C언어로 개발된 시스템을 자바로 변환하는 작업을 하다보니 평소에 자주 안쓰던 메소드들을 사용하게된다.

String를 char 타입으로 변환 바꾸기

charAt(index) 사용법

index값은 0부터 시작이다.

String input = “안녕”;
char c = input.charAt(0);


System.out.println(c);
결과값 : 안

for문으로  출력하는 예제

String input = “안녕! 반가워”;

for(int i=0; i<input.length(); i++) {


System.out.println(input.charAt(i));

}

toCharArray() 사용법

String input = “안녕하세요”;
char[] arrCh = input.toCharArray();


for(char c : arrCh) {
     System.out.println(c);

}


※주의할 점

특수문자, 공백도 인덱스에 포함된다.

String input = “안녕 반가워”;

char c = input.charAt(2);

결과 : (공백)




문자열로 변환시  String.valueOf() 사용할것

toString()사용하여 문자열로 변환하면 전혀 다른값이 리턴된다.



char c = ‘a’;

String str = String.valueOf(c);


char[] arrCh = {‘a’, ‘b’, ‘c’ };

String str = String.valueOf(arrCh);
System.out.println(str);
결과 : abc (type : String)




char c = ‘a’;

String str = Character.toString(c);
결과 : a (type : String)



※ 주의할 점:

Character.toString() 사용 시 char [] 배열은 변환이 불가능



+”” 사용법

char c = ‘a’;

String str = ch + “”;
결과 : a (type : String)



실행 속도 비교

valueOf() vs “”

public class testExec {

 public static void main(String[]) {
 
    char ch = 'a';
 
    long startNanoTime = System.nanoTime(); 
        
    int i = 1000000000;
    while(i --> 0) {
        
      String str = String.valueOf(ch);
      String str = ch+"";
    }
 
    long secDiffTime = (System.nanoTime() - startNanoTime) / 1000000000;
    System.out.println(secDiffTime);
    }
}


valueOf() 속도
일반 결과 : 0초
배열 결과 : 5초


“”  속도
일반 결과 : 20초
배열 결과 : 74초

error: Content is protected !!