要求是输入的字符像后移动3位。
 如果是XYZ就转换成ABC。
 这是我做的方法可是有问题。
 求解。
谢谢。
package com.jiali.ceshi;public class Encryption {
public String encoding(String str) {
char[] strs = str.toCharArray();//这里是把他转换成字符
for (int i = 0; i < strs.length; i++) {//控制循环次数
if (strs[i] >= 'a' && strs[i] <= 'z' || strs[i] >= 'A'
&& strs[i] <= 'Z') { //判断STR[I】是否大于a或者z 或者小于A或者Z
strs[i]+= 3;
if (strs[i] >= 'x' || strs[i] >= 'X') {//如果strs[i]是大于等于x或者X的话执行下面的语句
strs[i] -= 26; //如果符合上面的条件执行数组i的值-26
}
//再+上3就是转换为a到C。

} else {
System.out.println("存在未知字符");
break;
}
}
return new String(strs);
}
}

解决方案 »

  1.   

    public class Encryption {
        public String encoding(String str) {
            char[] strs = str.toCharArray();//这里是把他转换成字符
            for (int i = 0; i < strs.length; i++) {//控制循环次数
              //这里你要加上括号 
                if ((strs[i] >= 'a' && strs[i] <= 'z') || (strs[i] >= 'A'
                        && strs[i] <= 'Z')) { //判断STR[I】是否大于a或者z 或者小于A或者Z
                    strs[i]+= 3;
                    if (strs[i] >= 'x' || strs[i] >= 'X') {//如果strs[i]是大于等于x或者X的话执行下面的语句
                        strs[i] -= 26;    //如果符合上面的条件执行数组i的值-26
                    }
                    //再+上3就是转换为a到C。
                
                } else {
                    System.out.println("存在未知字符");
                    break;
                }
            }
            return new String(strs);
        }
    }
      

  2.   

    您好..
    按照你的方法加了括号还是一样运行错误了啊。
    abcd加密后成了JKLM
      

  3.   

    if (strs[i] >= 'x' || strs[i] >= 'X')
    改成
    if (strs[i] >= 'x' || (strs[i] >= 'X' && strs[i]<'a'))
      

  4.   

    还是一样啊...
    怎么回事啊...
    package com.jiali.ceshi;import java.util.Scanner;public class Swither {
    public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    System.out.println("请输入一个字符串:");
    String str=input.next();
    Encryption en=new Encryption();
    String encodingStr=en.encoding(str);
    System.out.println("加密的字符串"+encodingStr);
    Decryption de=new Decryption();
    String decodingStr=de.encoding(str);
    System.out.println("解密的字符串:"+decodingStr);
    }
    }
      

  5.   

    package com.jiali.ceshi;public class Encryption {
    public String encoding(String str) {
    char[] strs = str.toCharArray();//这里是把他转换成字符
    for (int i = 0; i < strs.length; i++) {//控制循环次数
    if ((strs[i] >= 'a' && strs[i] <= 'z' || strs[i] >= 'A'
    && strs[i] <= 'Z')) { //判断STR[I】是否大于a或者z 或者小于A或者Z

    if (strs[i] >= 'x'|| strs[i] >= 'X'&&strs[i]>'a') {//如果strs[i]是大于等于x或者X的话执行下面的语句
    strs[i] -= 26; //如果符合上面的条件执行数组i的值-26
    }
    //再+上3就是转换为a到C。
    strs[i]+= 3;
    } else {
    System.out.println("存在未知字符");
    break;
    }
    }
    return new String(strs);
    }
    }
      

  6.   

    package com.jiali.ceshi;public class Decryption {
    public String encoding(String str) {
    char[] strs = str.toCharArray();
    for (int i = 0; i < strs.length; i++) {
    if ((strs[i] >= 'a' && strs[i] <= 'z' || strs[i] >= 'A'
    && strs[i] <= 'Z')) {

    if (strs[i] >= 'x'|| strs[i] >= 'X'&&strs[i]>'a') {
    strs[i] += 26;
    }
    strs[i] -= 3;
    } else {
    System.out.println("存在未知字符");
    break;
    }
    }
    return new String(strs);
    }
    }
      

  7.   

    public class Encryption {
      public String encoding(String str) {
            char[] strs = str.toCharArray();//转换成字符
            for (int i = 0; i < strs.length; i++) {//控制循环次数
                if ((strs[i] >= 'a' && strs[i] <= 'z' || strs[i] >= 'A'
                        && strs[i] <= 'Z')) { //判断是否大于a或者z 或者小于A或者Z
                
                    if (strs[i] <'a'|| strs[i] > 'z'&&strs[i]>'Z'||strs[i]<'A') {//如果strs[i]是大于等于x或者X的话执行下面的语句
                        strs[i] -= 26;    //如果符合上面的条件执行数组i的值-26
                    }
                    //再+上3就是转换为a到C。
                    strs[i]+= 3;
                } else {
                    System.out.println("存在未知字符");
                    break;
                }
            }
            return new String(strs);
        }
    }
    这样就没问题了。。
    你好像是    if (strs[i] <'a'|| strs[i] > 'z'&&strs[i]>'Z'||strs[i]<'A') {//如果strs[i]是大于等于x或者X的话执行下面的语句这里的问题。。