我正在尝试让用户输入一个字符串,并让代码接受输入并将值加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);
}
}
答案 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);
}