文本加密习题
package io; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; /**
* 编写一个程序,该程序要能接受用户输入的文本行,并将输入的文本行进行编码加密。 要求如下:
* 将文本行中的每个字符替换为字母表(a至z和A至z)中该字符后面的第13个字符。例如,字母“a"将替换为“n”,字母z将替换为“m”。
* 用户输入“quit”后,程序应终止。
*
* @author TangJiang 2017年11月18日 下午9:47:15
*
*/
public class Encrypt {
public static void main(String[] args) { try {
// 输入流
InputStreamReader isp = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isp); // 输出流
OutputStreamWriter osp = new OutputStreamWriter(System.out);
BufferedWriter bw = new BufferedWriter(osp); String str;
//创建字符串缓冲区
StringBuffer sb = new StringBuffer(); while (true) {
System.out.println("请输入要转换的内容:");
if ((str = br.readLine()) != null) { if (str.equalsIgnoreCase("quit")) {
break;
} else {
// 将输入字符串转换为字符数组
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
// 在原始缓冲字符串追加加密文本
sb.append((char) (ch[i] + 13));
}
// 将字符数组转换为字符串
String str1 = sb.toString();
// 将字符串原始文本删除
sb.delete(0, sb.length());
System.out.println("加密后的文本为:");
bw.write(str1);
//将字符串写入缓冲区
//写入一个行分隔符
bw.newLine();
bw.flush();
} }
}
bw.close();
br.close();
} catch (Exception ef) {
ef.printStackTrace();
}
} }