みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaについて質問です。

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をつかったやり方を教えてください><」

投稿日時 - 2010-06-04 22:04:20

QNo.5945129

困ってます

質問者が選んだベストアンサー

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

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

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

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

投稿日時 - 2010-06-04 22:32:25

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)