Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么字符数组列表内容不同于字符数组?_Java_Arrays_Arraylist - Fatal编程技术网

Java 为什么字符数组列表内容不同于字符数组?

Java 为什么字符数组列表内容不同于字符数组?,java,arrays,arraylist,Java,Arrays,Arraylist,尝试将内容从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');

尝试将内容从
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);
ArrayList temp=new ArrayList();
for(int i=0;i
我猜出现问题的原因是
ArrayList
Character
对象的列表,但数组是
char[]
。 提前谢谢。

你可以这样做

    ArrayList<Character> temp = ...

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

    char[] charArray=string.toCharArray();

    System.out.println(charArray);
ArrayList温度=。。。
String String=temp.stream().map(c->c.toString()).collect(collector.joining(“”);
char[]charArray=string.toCharArray();
系统输出打印LN(charArray);

您遇到了什么问题?难道你不认为解释你的问题而不仅仅是转储代码并抱怨你问的其他问题是有意义的吗?for循环中使用的变量“string”是什么?为什么你甚至使用
ArrayList
?如果需要可变字符串,请使用a,然后使用
sb.toString().toCharray()
将其转换为
char[]
(如果变量名为
sb
)正确的空格编码是
%20
(而不是
%2
),您可能只需要使用。