如何将字符数组转换为字符串数组

9
如何将char数组转换为string数组?或者更好的方法是,您可以获取一个字符串并将其转换为包含该字符串每个字符的字符串数组吗?
编辑:感谢@Emiam!使用他的代码作为临时数组,然后使用另一个数组来去除额外的空格,这样就可以完美地工作了。
String[] tempStrings = Ext.split("");
String[] mStrings = new String[Ext.length()];

for (int i = 0; i < Ext.length(); i++) 
    mStrings[i] = tempStrings[i + 1];

你的意思是字符数组的数组吗? - Imre L
1
string.toCharArray()new String(chararray) - Imre L
这是一篇关于如何在Java中将字符数组转换成字符串的文章。你可以访问**Convert Char Array To String In Java**来帮助回答你的问题。 - Rahul Gupta
6个回答

21

或者更好的方式是,你能否将一个字符串转换为包含该字符串每个字符的字符串数组?

我认为可以通过在字符串中使用 "" 进行拆分来实现。像这样:

String [] myarray = mystring.split("");

编辑: 如果不想要开头的空字符串,可以使用正则表达式:"(?!^)"

String [] mySecondArray = mystring.split("(?!^)");

1
如果你使用.split(""),实际上会得到一些奇怪的结果,因为在字符串的开头有一个空字符串(或者类似这样的东西)。无论如何,输出在位置0处有一个空的零长度字符串。我的数组是这样的。 - Gareth Davis
是的,但如果是这种情况,可以创建另一个没有第一个元素的数组。 - Emir Kuljanin
谢谢,这个可以工作,但会在开头添加额外的空字符。虽然我可以处理这个问题。 - Dread_99

7

Java 8美丽的一行代码:

String[] array = Stream.of(charArray).map(String::valueOf).toArray(String[]::new);

无法运行,我遇到了ArrayStoreException异常。 - kopaka
@kopaka 这很奇怪,我用它可以正常工作。你可以给我看一下你的代码吗? - Collin Alpert
String[] array = Stream.of(regKey).toArray(String[]::new);``` 导致一个 ArrayStoreException 异常。 - kopaka
这不是一个好的解决方案,它将所有字符合并成一个字符串。 - rpajaziti

3
我已经进行了以下测试以检查Emiam的假设:
public static void main(String[] args) {
    String str = "abcdef";

    String [] array = str.split("");
}

这段代码可以正常运行,但是它在数组的第一个位置添加了一个空字符串。所以数组的长度为7,内容为{ "", "a", "b", "c", "d", "e", "f" }。

我使用的是Java SE 1.6版本进行测试。


如何从数组中删除 ""。我只需要 {"a", "b", "c", "d", "e", "f"}。有可能吗? - Ashokchakravarthi Nagarajan
@CHAKRAVARTHI 这不是一个动态数组,所以你必须创建一个新的数组来保存你想要保留的插槽。这可以通过多种方式完成。如果只是跳过第一个“”,那么最好以基于1的方式索引数组,而不是基于0的方式。 - Shlublu

2

暴力破解:

String input = "yourstring";
int len = input.length();
String [] result = new String[len];

for(int i = 0; i < len ; i ++ ){
    result[i] = input.substring(i,i+1);
}

0

这将返回一个字符串数组,但只有一个值如下所示 String[] str = {"abcdef"};


0

// char[] 转 String[] String[] sa1 = String.valueOf(cArray).split("");


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接