したがって、問題は、入力から文字列と文字を取得し、次のようなメソッドを使用してエンコードするJavaプログラムを作成することです。
エンコード方法:このメソッドは、入力文字と入力文字列の最初の文字の間の距離を計算し、入力文字をその文字列の先頭に追加し、距離番号に基づいて残りの入力文字をシフトします。
例1:文字列-> Ali&Char-> D
DとAの間の距離-> 3
結果:DAol
example2:文字列->テストと文字-> R
RとTの間の距離->-2
結果:RTcqr
プログラムは、入力をデコードできる必要もあります。
例1:DAol-> Ali
例2:RTcqr->テスト
エンコーディングでこれを試しましたが、機能しませんでした。
public static void encode() {
String text = "Ali";
String result1 = "";
String result2 = "";
String finalResult = "";
char add = 'D';
char[] chars = {'a', 'b' ,'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
int dis = add - result1.charAt(0);
result2 += add;
result2 += result1;
for (int i = 0; i < result2.length(); i++) {
if (i < 2) {
finalResult += result2.charAt(i);
} else {
int temp = result2.charAt(i) + dis;
System.out.println("temp: "+temp);
finalResult += chars[i];
}
}
System.out.println(dis);
System.out.println(finalResult);
}
エンコーディング秘密鍵を使用したくない場合は、文字を定義する必要はありません。以下のコードは正常に機能し、手順に従うことができます。
public class Main {
public static void main(String []args){
String test = "Ali";
char encoder = 'D';
String encoded = encode(test, encoder);
System.out.println(encoded);
System.out.println(decode(encoded));
test = "Test";
encoder = 'R';
encoded = encode(test, encoder);
System.out.println(encoded);
System.out.println(decode(encoded));
}
private static String encode(String text, char encoder){
char firstChar = text.charAt(0);
int distance = encoder - firstChar;
String encoded = "" + encoder + firstChar;
for(int i = 1; i < text.length(); i++){
encoded += (char)(text.charAt(i) + distance);
}
return encoded;
}
private static String decode(String text){
char encoder = text.charAt(0);
char firstChar = text.charAt(1);
int distance = encoder - firstChar;
String decoded = "" + firstChar;
for(int i = 2; i < text.length(); i++){
decoded += (char)(text.charAt(i) - distance);
}
return decoded;
}
}
出力:
DAol
Ali
RTcqr
Test
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加