java中的字符串到字符串数组转换

riy*_*ana 107 java string

我有一个string="name"; 我想转换成字符串数组.我该怎么做?有没有内置的java函数?手动我可以做到,但我正在寻找一个内置的java函数.

我想要一个数组,其中字符串的每个字符都是一个字符串.像char'n'现在将字符串"n"存储在一个数组中.

rsp*_*rsp 186

要开始你的工作,String.split在正则表达式上拆分字符串,这个表达式可能是一个空字符串:

String[] ary = "abc".split("");
Run Code Online (Sandbox Code Playgroud)

产生数组:

(java.lang.String[]) [, a, b, c]
Run Code Online (Sandbox Code Playgroud)

摆脱空的第一个条目留给读者练习:-)

注意:在Java 8中,不再包含空的第一个元素.

  • 注意:使用jdk8,结果数组中不再包含空的第一个条目.请参阅http://stackoverflow.com/questions/22718744/why-does-split-in-jdk-8-sometimes-removes-empty-strings-if-they-are-at-start-of (19认同)

f1s*_*1sh 41

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

第二行分配长度为1的String数组.请注意,您不需要自己指定长度,例如:

String[] strArray = new String[1];
Run Code Online (Sandbox Code Playgroud)

相反,长度由初始化器中的元素数量决定.运用

String[] strArray = new String[] {strName, "name1", "name2"};
Run Code Online (Sandbox Code Playgroud)

创建一个长度为3的数组.

  • 没有真正回答这个问题. (20认同)
  • 检查问题的修订历史,您会看到问题在编辑之前要求有所不同。这个答案回复了第一个版本。 (2认同)

fin*_*nnw 14

假设你真的想要一个单字符串的数组(不是char[]或者Character[])

1.使用正则表达式:

public static String[] singleChars(String s) {
    return s.split("(?!^)");
}
Run Code Online (Sandbox Code Playgroud)

零宽度负向前瞻会阻止输入开始时的模式匹配,因此您不会获得前导空字符串.

2.使用番石榴:

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);
}
Run Code Online (Sandbox Code Playgroud)


Lan*_*dei 13

我想根本不需要它,因为它不会变得更简单

String[] array = {"name"};
Run Code Online (Sandbox Code Playgroud)

当然,如果你坚持,你可以写:

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

String[] array = convert("name","age","hobby"); 
Run Code Online (Sandbox Code Playgroud)

[编辑]如果你想要单字母字符串,你可以使用:

String[] s = "name".split("");
Run Code Online (Sandbox Code Playgroud)

不幸的是,s [0]将为空,但在此之后将出现字母n,a,m,e.如果这是一个问题,您可以使用例如System.arrayCopy来摆脱第一个数组条目.


ata*_*man 10

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;
}
Run Code Online (Sandbox Code Playgroud)


小智 9

在java 8中,有一个方法可以用来执行此操作:toCharArray():

String k = "abcdef";
char[] x = k.toCharArray();
Run Code Online (Sandbox Code Playgroud)

这导致以下数组:

[a,b,c,d,e,f]
Run Code Online (Sandbox Code Playgroud)


the*_*ost 5

字符串数组=字符数组?

还是您有一个包含多个单词的字符串,每个单词应该是一个数组元素?

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


Rad*_*nna 5

只需使用.toCharArray()Java 中的方法:

String k = "abc";
char[] alpha = k.toCharArray();
Run Code Online (Sandbox Code Playgroud)

这在 Java 8 中应该可以正常工作。