String
를 Character 클래스 의 개체 배열 로 변환하고 싶지만 변환 을 수행 할 수 없습니다. toCharArray()
메서드 를 사용하여 String을 원시 데이터 유형 “char”의 배열로 변환 할 수 있지만 String을 Character 유형 의 개체 배열로 변환하는 데 도움이되지 않습니다 .
그렇게하려면 어떻게해야합니까?
답변
이것을 사용하십시오 :
String str = "testString";
char[] charArray = str.toCharArray();
Character[] charObjectArray = ArrayUtils.toObject(charArray);
답변
한 라이너 자바 -8:
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;
}