Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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_String_Loops - Fatal编程技术网

为什么这个循环会反转Java中的字符串

为什么这个循环会反转Java中的字符串,java,string,loops,Java,String,Loops,我试图删除给定字符串中的空白,虽然我已经做到了这一点,但返回的字符串看起来是相反的。谁能解释一下原因吗 public String removeSpaces(String cadena) { String noSpace=""; for (int i = 0; i < cadena.length(); i++) { if (cadena.charAt(i) == ' ') { noSpace=noSpace; }els

我试图删除给定字符串中的空白,虽然我已经做到了这一点,但返回的字符串看起来是相反的。谁能解释一下原因吗

public String removeSpaces(String cadena) {
    String noSpace="";
    for (int i = 0; i < cadena.length(); i++) {
        if (cadena.charAt(i) == ' ') {
            noSpace=noSpace;
        }else{
            noSpace=cadena.charAt(i)+noSpace;
        }
    }
    return noSpace;
}

要删除空白,可以执行以下操作:


str.replaceAll\\s+,

如果要使用这种方法,只需稍微更改一下:

public String removeSpaces(String cadena) {
String noSpace="";
for (int i = 0; i < cadena.length(); i++) {
    if (cadena.charAt(i) != ' ') {
        noSpace+=cadena.charAt(i);
    }
}
return noSpace;
}

noSpace=cadena.charAti+noSpace;=>noSpace=noSpace+cadena.charAti;-也可以只做cadena=cadena.replace,;你有没有试着用一个小例子来解释这个问题?因为你把这个字符添加到了字符串的开头?还有,我明白了,为什么要为并没有op而烦恼呢。如果我更改顺序,它将以正确的顺序返回de字符串。但我还是不明白为什么它会反转它:/无论如何,谢谢;是的,我试过一些不起作用的东西。请记住,我在Java的第一个月,我通常会问我们的老师,但他已经病了好几天了,这是一个大作业的一部分,除了谷歌之外,我什么都没有弄清楚。@nakkeru有什么需要理解的?玩电脑,写下正在发生的事情。如果您的字符串是ABC,那么您正在构建如下输出字符串:A+,B+A,C+BA。很简单。如果您在输出字符串的末尾添加字符,它是:+A,A+B,AB+CWell,我们不应该知道如何使用方法,所以我们被迫以更手动的方式来做,排序说话。但是谢谢你;不要忘记,您可以随时查看Java源代码,以了解这些方法是如何在后台实现的。它们可以用作学习工具。