重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

javaについて質問です。
シーザー暗号の暗号化と復号化のプログラムをつくりたいのですが...

import java.io.*;

class Prob6_2
{
public static void main(String [] args)throws IOException
{
int key; //キー番号
String orgStr; //ターゲット文字列
String encStr; //暗号化文字列
String decStr; // 復号化文字列

String temp;

BufferedReader br=
new BufferedReader(new InputStreamReader(System.in));

System.out.print("ターゲット文字列:");
orgStr=br.readLine();
System.out.print("キー番号:");
temp=br.readLine();
key=Integer.parseInt(temp);

Cipher cip=new Cipher ();

encStr=cip.encrypt(orgStr,key);
decStr=cip.decrypt(encStr,key);

System.out.println("[Original Code]"+orgStr);
System.out.println("[Encrypted Code]"+encStr);
System.out.println("[Decrypted Code]"+decStr);
}
}

class Cipher
{

String encrypt(String str,int key)
{

for(int i=0;i<str.length();i++){
char c=str.charAt(i);
c=(char)((int)c+key);
/*この後どのように一つずつの文字をつなげて文字列にしたら良いか分かりません。StringBuffer クラスのインスタンス
をつかうといいというヒントは問題集に書いてあるのですが....教えて下さい*/
}

}


String decrypt(String str,int key)
{

for(int i=0;i<str.length();i++){
char c=str.charAt(i);
c=(char)((int)c-key);
/*この後どのように一つずつの文字をつなげて文字列にしたら良いか分かりません。StringBuffer クラスのインスタンス
をつかうといいというヒントは問題集に書いてあるのですが....教えて下さい*/
}
}

}

class Cipherのところにコメントでも書いてあるのですが、一つずつの文字をつなげて文字列にしたら良いか分かりません。どのように実現したら良いのでしょうか?><教えてください><
違っているところがあればそこも教えて頂けるとたすかります。
お願いします><

できたらStringBufferをつかったやり方を教えてください><」

A 回答 (1件)

StringBufferでもいいですが、同期化しない分StringBuilderのほうが高速だったと思います。



やりかたとしては、appendメソッドを使います。

StringBuilder sb = new StringBuilder();
sb.append(c);

でできるとおもいます。(StringBuilderのところをStringBufferに変えても同じことができます)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!