【问题标题】:How to convert a char array to a string array如何将char数组转换为字符串数组
【发布时间】:2011-10-04 00:41:55
【问题描述】:

如何将 char 数组转换为字符串数组?或者更好的是,你能把一个字符串转换成一个包含字符串每个字符的字符串数组吗?

编辑:感谢@Emiam!将他的代码用作临时数组,然后使用另一个数组来消除额外的空间,它完美地工作:

String[] tempStrings = Ext.split("");
String[] mStrings = new String[Ext.length()];

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

【问题讨论】:

标签: java type-conversion


【解决方案1】:

或者更好的是,你能把一个字符串转换成一个字符串数组吗 包含字符串的每个字符?

我认为这可以通过在“”处拆分字符串来完成。像这样:

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

编辑: 如果您不想要前导空字符串,则可以使用正则表达式:“(?!^)”

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

【讨论】:

  • 如果你这样做,你实际上会有点奇怪位置 0 myarray 中的长度字符串
  • 嗯,是的,但如果是这样的话,可以创建另一个没有第一个元素的数组。
  • 谢谢,这可行,但确实在开头添加了额外的空字符。不过我可以用这个
【解决方案2】:

面向未来人们的美丽 Java 8 单线:

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

【讨论】:

  • 对我不起作用,我得到一个 ArrayStoreException
  • @kopaka 这很奇怪,它对我有用。你能告诉我你的代码吗?
  • char [] regKey = {'A','B','C','D'}; String[] array = Stream.of(regKey).toArray(String[]::new); 导致 ArrayStoreException
  • 这不是一个好的解决方案,它将所有字符合并为一个字符串。
【解决方案3】:

我做了以下测试来检查 Emiam 的假设:

public static void main(String[] args) {
    String str = "abcdef";

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

它有效,但它在数组的位置 0 添加了一个空字符串。 所以数组有 7 个字符长并且是 { "", "a", "b", "c", "d", "e", "f" }。

我已使用 Java SE 1.6 进行了此测试。

【讨论】:

  • 如何从数组中删除“”。我只需要{“a”、“b”、“c”、“d”、“e”、“f”}。有没有可能?
  • @CHAKRAVARTHI 这不是动态数组,因此您必须使用要保留的插槽创建一个新数组。这可以通过很多方式完成。如果只是跳过第一个“”的问题,最好以基于 1 的方式索引数组而不是基于 0 的方式。
【解决方案4】:

蛮力:

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);
}

【讨论】:

    【解决方案5】:

    这将给出 string[] 作为结果,但只有一个值,如下所示 字符串[] str = {"abcdef"};

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        猜你喜欢
        • 2015-11-30
        • 2023-03-18
        • 2012-05-16
        • 2012-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-22
        相关资源
        最近更新 更多