[java] 자바에서 문자열을 문자열 배열로 변환

나는이 string = "name";
내가 문자열 배열로 변환합니다. 어떻게하나요? Java 내장 함수가 있습니까? 수동으로 할 수 있지만 Java 내장 함수를 찾고 있습니다.

문자열의 각 문자가 문자열이되는 배열을 원합니다. char ‘n’은 이제 배열에 저장된 문자열 “n”이됩니다.



답변

할당을 시작하기 String.split위해 정규 표현식에서 문자열을 분할하고이 표현식은 빈 문자열 일 수 있습니다.

String[] ary = "abc".split("");

어레이를 생성합니다.

(java.lang.String[]) [, a, b, c]

빈 첫 번째 항목을 제거하는 것은 독자를위한 연습으로 남겨집니다. 🙂

참고 : Java 8에서는 빈 첫 번째 요소가 더 이상 포함되지 않습니다.


답변

String strName = "name";
String[] strArray = new String[] {strName};
System.out.println(strArray[0]); //prints "name"

두 번째 줄은 길이가 1 인 String 배열을 할당합니다. 다음과 같이 길이를 직접 지정할 필요는 없습니다.

String[] strArray = new String[1];

대신 길이는 이니셜 라이저의 요소 수에 의해 결정됩니다. 사용

String[] strArray = new String[] {strName, "name1", "name2"};

길이가 3 인 배열을 만듭니다.


답변

당신이 정말로 단일 문자 문자열의 배열을 원한다고 가정합니다 ( char[]또는 Character[]아님)

1. 정규식 사용 :

public static String[] singleChars(String s) {
    return s.split("(?!^)");
}

너비가 0 인 음의 미리보기는 입력 시작시 패턴 일치를 방지하므로 선행 빈 문자열을 얻지 않습니다.

2. Guava 사용 :

import java.util.List;

import org.apache.commons.lang.ArrayUtils;

import com.google.common.base.Functions;
import com.google.common.collect.Lists;
import com.google.common.primitives.Chars;

// ...

public static String[] singleChars(String s) {
    return
        Lists.transform(Chars.asList(s.toCharArray()),
                        Functions.toStringFunction())
             .toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}


답변

나는 그것이 더 간단하지 않을 것이기 때문에 단순히 필요가 없다고 생각합니다.

String[] array = {"name"};

물론 당신이 주장한다면 다음과 같이 쓸 수 있습니다.

static String[] convert(String... array) {
   return array;
}

String[] array = convert("name","age","hobby"); 

[편집] 단일 문자 문자열을 원하는 경우 다음을 사용할 수 있습니다.

String[] s = "name".split("");

불행히도 s [0]은 비어 있지만 그 뒤에는 n, a, m, e 문자가 이어집니다. 이것이 문제라면, 예를 들어 System.arrayCopy를 사용하여 첫 번째 배열 항목을 제거 할 수 있습니다.


답변

String data = "abc";
String[] arr = explode(data);

public String[] explode(String s) {
    String[] arr = new String[s.length];
    for(int i = 0; i < s.length; i++)
    {
        arr[i] = String.valueOf(s.charAt(i));
    }
    return arr;
}


답변

Java 8에는이를 수행 할 수있는 메소드가 있습니다. toCharArray () :

String k = "abcdef";
char[] x = k.toCharArray();

결과는 다음과 같습니다.

[a,b,c,d,e,f]


답변

문자열 배열 = 문자 배열?

아니면 각각 배열 요소가되어야하는 여러 단어가있는 문자열이 있습니까?

String[] array = yourString.split(wordSeparator);