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

Java 字母交换方法。请再核对一下

Java 字母交换方法。请再核对一下,java,Java,所以我完成了这个方法(应该有一个字符串作为参数),它应该切换每对相邻的字母。如果是偶数个字母,它就应该这样做。然而,如果信的数量是奇数,那么最后一封信就不写了。例如,example将变成xemalpe,而那里的hello将变成ehll ohtree。这里的问题是,如果是奇数短语,它会删除最后一个字母。示例为时将变成ht。有人能再检查一下我做错了什么吗?代码如下: public static void main(String args[]){ swapPairs("hello the");

所以我完成了这个方法(应该有一个字符串作为参数),它应该切换每对相邻的字母。如果是偶数个字母,它就应该这样做。然而,如果信的数量是奇数,那么最后一封信就不写了。例如,example将变成xemalpe,而那里的hello将变成ehll ohtree。这里的问题是,如果是奇数短语,它会删除最后一个字母。示例为将变成ht。有人能再检查一下我做错了什么吗?代码如下:

public static void main(String args[]){
    swapPairs("hello the");
}

public static void swapPairs(String S){
    int cl = S.length() - 1;
    for(int i = 0; i < cl; i= i + 2) {
        System.out.print(S.charAt(i + 1));
        System.out.print(S.charAt(i));
        if (i == cl -1 ) {
            System.out.print(S.charAt(cl));
        } else {
        }
    }
    System.out.print("\n");
}
publicstaticvoidmain(字符串参数[]){
交换(“你好”);
}
公共静态无效交换(字符串S){
int cl=S.长度()-1;
对于(int i=0;i

考虑到我已经完成了作业,我有点争论是否应该将作业标记放在那里,但决定将它留在那里,因为它已经完成了。

您可以随时检查S.length()%2(这是mod运算符),如果它是0,则是偶数长度的字符串,1,奇数。然后,您可以根据具体情况对其进行不同处理。

当输入字符串的长度为偶数时(例如,单词“Then”的长度为4) 你的代码

int cl = S.length() - 1;      
    for(int i = 0; i < cl;
int cl=S.length()-1;
对于(int i=0;i
正确地使for循环的最后一个过程发生,i指向倒数第二个字符(例如i=2,第三个字符“e”)

注:“如果”代码与本案例无关

但是对于奇数长度(例如单词'hello'长度5) for循环的最后一次循环也发生在i=2时
-i=4的下一个增量i失败 而且for循环中的“if”代码永远不会有机会执行