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(); } } }
原文:http://www.cnblogs.com/tangjiang-code/p/7858202.html