Java/문자열

[Java]문자열에서 문자 가져오는 방법

DevStory 2022. 8. 17.

문자열에서 문자 가져오는 방법

Java의 문자열에서 Char 타입의 특정 문자를 가져와야 하는 경우가 존재할 수 있습니다.

 

이번 포스팅은 문자열에서 문자를 가져오는 다양한 방법들을 소개합니다.


방법 1. 특정 위치의 문자 가져오기

charAt() 메서드는 특정 위치에 존재하는 단일 문자를 반환합니다.

 

다음 예제는 charAt() 메서드를 사용하여 문자열 "Hello"에서 2번째 인덱스에 위치하는 단일 문자를 가져옵니다.

public static void main(String args[]) {
  String strValue = "Hello";
  char charValue = strValue.charAt(2);

  System.out.println("2번째 위치에 존재하는 문자: " + charValue);
}

[실행 결과]

2번째 위치에 존재하는 문자: l

주의사항으로 charAt() 메서드에 문자열의 범위를 벗어나는 값을 전달하면 StringIndexOutOfBoundsException이 발생합니다.


방법 2. 특정 위치의 문자를 유니코드로 가져오기

특정 위치의 문자를 char 타입의 값이 아닌 유니코드 10진수 값으로 가져오고 싶은 경우 codePointAt() 메서드를 사용합니다.

 

다음 예제는 codePointAt() 메서드를 사용하여 문자열 "Hello"에서 2번째 인덱스에 위치하는 문자를 10진수 유니코드로 가져옵니다.

public static void main(String args[]) {
  String strValue = "Hello";
  int unicodeValue = strValue.codePointAt(2);

  System.out.println("2번째 위치에 존재하는 문자(유니코드): " + unicodeValue);
}

[실행 결과]

2번째 위치에 존재하는 문자(유니코드): 108

방법 3. 특정 범위의 문자 가져오기

getChars() 메서드는 문자열 특정 범위의 문자를 문자열 배열에 할당합니다.

public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin);

int srcBegin

- 문자열의 시작 범위를 설정합니다.

- 시작 범위는 포함되지 않습니다.

 

int srcEnd

- 문자열의 종료 범위를 설정합니다.

 

char dst[]

- 문자 배열을 전달합니다.

 

int dstBegin

- 문자 배열의 시작 위치를 설정합니다.

- 0으로 설정하는 경우 세 번째 매개변수인 문자 배열의 0번째 위치부터 문자가 할당됩니다.

 

getChars() 메서드의 반환 타입은 void이므로 반환되는 값이 없습니다.

 

다음 예제는 문자열 "Hello Java Programming"에서 6번째 위치에서 10번째 위치까지 문자를 charArray 배열에 할당합니다.

public static void main(String args[]) {
  String strValue = "Hello Java Programming";
  char[] charArray = new char[4];

  strValue.getChars(6, 10, charArray, 0);

  System.out.println(charArray);
}

[실행 결과]

Java

주의사항으로 문자 배열의 크기보다 할당되는 값이 많은 경우 ArrayIndexOutOfBoundsException이 발생합니다.

 

다음 예제는 6번째 위치에서 15번째 위치까지 총 9개의 문자를 크기가 4로 설정된 문자 배열에 할당합니다.

public static void main(String args[]) {
  String strValue = "Hello Java Programming";
  char[] charArray = new char[4];

  strValue.getChars(6, 15, charArray, 0);

  System.out.println(charArray);
}

[에러 내용]


방법 4. 문자열을 문자 배열로 변환

문자열의 모든 값을 문자로 변환하는 방법으로 toCharArray() 메서드를 사용합니다.

 

toCharArray() 메서드는 문자열 길이만큼 할당된 char 배열을 반환합니다.

public static void main(String args[]) {
  String strValue = "Hello Java";
  char[] charArray = strValue.toCharArray();

  System.out.println(Arrays.toString(charArray));
}

[실행 결과]

[H, e, l, l, o,  , J, a, v, a]
반응형

댓글