仅将2添加到某些ascii值

时间:2016-02-02 03:40:59

标签: java

我正在尝试让用户输入一个字符串,并让代码接受输入并将值加2。所以'a'会返回'c'。唯一的问题是我不希望它发生在特殊字符“!”,空格,',。iec。我试过了别的,我得到了错误。有什么想法吗?

public static void main(String[] args){
    String inputString;
    System.out.println("Input: ");
    Scanner sc = new Scanner(System.in);
    inputString = sc.nextLine();
    sc.close();
    int len=inputString.length();
    char[] c = inputString.toCharArray();
    for(int i = 0; i < len; i++) {
        if()
        System.out.println(c);
        else( =)    
        c[i] +=2;
        System.out.println(c);      
    }
}

2 个答案:

答案 0 :(得分:0)

试试这个 - &gt;

 public static void main(String[] args){
            String inputString;
            System.out.println("Input: ");
            Scanner sc = new Scanner(System.in);
            inputString = sc.nextLine();
            sc.close();
            char[] c = inputString.toCharArray();
            for(char ch : c) // This iterate through the input char array.
            {
                if(ch <=91 && ch>=65 || ch<=123 && ch>=97) // ascii value of a to z and A to Z.
                System.out.println(Character.valueOf((char) (ch+2)));
                else    
                System.out.println(ch);


            }    

答案 1 :(得分:0)

if((c[i] >= 65 && c[i] <= 90) || (c[i] >= 97 && c[i] <= 122))
{
    c[i] += 2;
    System.out.println(c);
} 
else
{
    System.out.println(c);
}

这将检查字符是A-Z还是a-z。或者,你可以使用toUpper()或toLower(),只使用if

的一半
if(Character.toUpperCase(c[i]) >= 65 && Character.toUpperCase(c[i]) <= 90)
{
    c[i] += 2;
    System.out.println(c);
} 
else
{
    System.out.println(c);
}