0
こんにちはIは、Java(日食で実行されている)で単純符号化/復号化方法を有する符号化/復号化でゴミに文字列を破りますエンコーディング)。Javaは0 <キーは、次に他のデコード実行する場合(パラメータキーによって選択された符号化されたというより復号された文字列を返す
方法は、次のコードが示すようにボイド主に実行されます。
public static void main(String[] args)
{
System.out.println(rotate("programm", 42));
}
マイ符号化/復号化方法は、次のようになります
public static String rotate(String text, int key)
{
// Check if given key is in range -25 to 25
if (key < -42 || key > 42)
return "";
if (key == 0)
return text;
char[] array = text.toCharArray();
int k = key % 26;
// Check if every char of given text is in rang from 'a' to 'z'
// Use text as char array to manipulate each char
for (int i = 0; i < array.length; ++i) {
if (array[i] < 'a' || array[i] > 'z') {
return "";
}
else {
if (key < 0) {
int j = (int)array[i] - k;
if (j < 'a')
array[i] = (char)(j+26);
else
array[i] -= k;
}
else {
int j = (int)array[i] + k;
if (j > 'z')
array[i] = (char)(j-26);
else
array[i] += k;
}
}
}
return array.toString();
}
問題は、回転の結果アレイ(..)であることで正しい「fhewhqcc」が、コンソール印刷」に等しいです[C @ 123a439b "。
ご存知ですか?
文字配列ではなく文字配列を返します。したがって、印刷された出力はそのようなものです。 – inquizitive
は '新しいString(配列)'と ')(' array.toStringを交換してください。 – shmosel
は、私はC++岸から来て、私は、Javaに慣れていないよ、君たちをありがとうございます。 –