[java] Java에서 문자열을 “문자”배열로 변환

StringCharacter 클래스 의 개체 배열 로 변환하고 싶지만 변환 을 수행 할 수 없습니다. toCharArray()메서드 를 사용하여 String을 원시 데이터 유형 “char”의 배열로 변환 할 수 있지만 String을 Character 유형 의 개체 배열로 변환하는 데 도움이되지 않습니다 .

그렇게하려면 어떻게해야합니까?



답변

이것을 사용하십시오 :

String str = "testString";
char[] charArray = str.toCharArray();
Character[] charObjectArray = ArrayUtils.toObject(charArray);


답변

한 라이너 :

String str = "testString";

//[t, e, s, t, S, t, r, i, n, g]
Character[] charObjectArray = 
    str.chars().mapToObj(c -> (char)c).toArray(Character[]::new); 

그것이하는 일은 :

  • IntStream문자를 가져옵니다 (를 볼 수도 있습니다 codePoints()).
  • 각각의 ‘문자’값 매핑 Character(그 정말 말할 실제로 캐스팅 할 필요를 char하고 자바가 자동으로 상자됩니다 Character)
  • 호출하여 결과 배열을 가져옵니다. toArray()

답변

직접 작은 방법을 작성하지 않겠습니까?

public Character[] toCharacterArray( String s ) {

   if ( s == null ) {
     return null;
   }

   int len = s.length();
   Character[] array = new Character[len];
   for (int i = 0; i < len ; i++) {
      /*
      Character(char) is deprecated since Java SE 9 & JDK 9
      Link: https://docs.oracle.com/javase/9/docs/api/java/lang/Character.html
      array[i] = new Character(s.charAt(i));
      */
      array[i] = s.charAt(i);
   }

   return array;
}


답변

아래 코드가 도움이되기를 바랍니다.

String s="Welcome to Java Programming";
char arr[]=s.toCharArray();
for(int i=0;i<arr.length;i++){
    System.out.println("Data at ["+i+"]="+arr[i]);
}

작동하고 출력은 다음과 같습니다.

Data at [0]=W
Data at [1]=e
Data at [2]=l
Data at [3]=c
Data at [4]=o
Data at [5]=m
Data at [6]=e
Data at [7]=
Data at [8]=t
Data at [9]=o
Data at [10]=
Data at [11]=J
Data at [12]=a
Data at [13]=v
Data at [14]=a
Data at [15]=
Data at [16]=P
Data at [17]=r
Data at [18]=o
Data at [19]=g
Data at [20]=r
Data at [21]=a
Data at [22]=m
Data at [23]=m
Data at [24]=i
Data at [25]=n
Data at [26]=g


답변

String#toCharArray의 배열을 반환하고 char, 가지고있는 것은의 배열입니다 Character. 대부분의 경우 그것은 당신이 사용하는 경우 중요하지 않습니다 char또는 Character거기로 오토 박싱 . 귀하의 경우 문제는 배열이 자동 박싱되지 않는다는 것 char[]입니다. char ( ) 배열을 사용하는 것이 좋습니다 .


답변

이 경우 자신 만의 방법을 작성해야합니다. 루프를 사용하여 각 문자를 취득 charAt(i)하고로 설정 Character[]하여 배열 arrayname[i] = string.charAt[i].


답변

이 메서드는 문자열을 인수로 사용하고 문자 배열을 반환합니다.

/**
 * @param sourceString
 *            :String as argument
 * @return CharcterArray
 */
public static Character[] toCharacterArray(String sourceString) {
    char[] charArrays = new char[sourceString.length()];
    charArrays = sourceString.toCharArray();
    Character[] characterArray = new Character[charArrays.length];
    for (int i = 0; i < charArrays.length; i++) {
        characterArray[i] = charArrays[i];
    }
    return characterArray;
}