1
タイトルに記載されているように、私が書いたjavaのメソッドに問題があります。これはコードです:メソッドは、Javaではcharの代わりにintを返します
public static char shift(char c, int k) {
int x = c;
int d = c - 65 + k;
int e = c - 97 + k;
if (x > 64 && x < 91 && d >= 0) {
c = (char) (d % 26 + 65);
} else if (x > 96 && x < 123 && e >= 0) {
c = (char) (e % 26 + 97);
}
if (x > 64 && x < 91 && d < 0) {
c = (char) ((d + 26) % 26 + 65);
} else if (x > 96 && x < 123 && e < 0) {
c = (char) ((e + 26) % 26 + 97);
}
return c;
}
アルファベットで文字をシフトしたいと思います。
String s = " ";
String text = readString();
int k = read();
for (int i = 0; i < text.length(); i++) {
char a = text.charAt(i);
int c = a;
int d = a - 65 + k;
int e = a - 97 + k;
if (c > 64 && c < 91 && d >= 0) {
a = (char) (d % 26 + 65);
} else if (c > 96 && c < 123 && e >= 0) {
a = (char) (e % 26 + 97);
}
if (c > 64 && c < 91 && d < 0) {
a = (char) ((d + 26) % 26 + 65);
} else if (c > 96 && c < 123 && e < 0) {
a = (char) ((e + 26) % 26 + 97);
}
s += a;
}
System.out.println(s);
}
方法シフトが、私はこのようにそれを使用して整数を返し、なぜ私は理解していない:コードは、私はこの(シーザーChiper)のようにそれを使用する場合は完璧に動作シフト(「C」、5); hのdec番号である104を返します。私はJavaの初心者で、遅い人です。
ありがとうございます。
charはint toooです –
どのようにshift()の戻り値を使用しましたか? –
私は知っていますが、文字を返すメソッドが必要です。私が書いた場合:char a = shift( 'c'、5); System.out.println(a);それは私に104を示し、 'h'を示さない。 – Ralu