2016-03-04 104 views
-2

我发现试图从ArrayList<Character>内容复制到一个字符数组,当一个问题:为什么Character arrayList的内容与char数组不同?

ArrayList<Character> temp = new ArrayList<>(); 
for (int i = 0; i < length; i++) { 
    if (string[i] != ' ') { 
     temp.add(string[i]); 
    } else { 
     temp.add('%'); 
     temp.add('2'); 
    } 
} 
string = temp.toArray(string); 

我猜发生了问题,因为ArrayListCharacter对象的列表,但数组是char[]。 在此先感谢。

+3

您有什么问题?你不觉得解释你的问题而不是转储代码并抱怨你问的其他问题是有意义的吗? – Kon

+1

for循环中使用的变量“string”是什么? –

+2

为什么你甚至使用'ArrayList '?如果你想要一个可变字符串,可以使用['StringBuilder'](https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html),然后使用'sb.toString( ).toCharArray()'将它转换为'char []'(如果你的变量名为'sb') – Majora320

回答

1

你可以这样做

ArrayList<Character> temp = ... 

    String string=temp.stream().map(c->c.toString()).collect(Collectors.joining("")); 

    char[] charArray=string.toCharArray(); 

    System.out.println(charArray); 
相关问题