A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© simonqian 中级黑马   /  2013-5-13 17:34  /  1031 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 simonqian 于 2013-5-13 22:39 编辑

A→Z    a→z
B→Y   b→y
C→X   c→x
即第1个字母变成第26个字母,第2个字母变成第25个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。假如已知道密码是Umtorhs,要求编程序将密码译回原文,并输出密码和原文?

1 个回复

倒序浏览
本帖最后由 chouwayメ 于 2013-5-13 22:33 编辑

思路是:1.把Secret字符串变成字符组。
              2.对属于a-z,A-Z的字符进行密码编译。。。那个规律就是编码前和编码后的字母相加是个定值。

  1. public class Secret
  2. {
  3.         public static void main(String[]args)
  4.         {
  5.                 String sec="Umtorhs__ABCabc";
  6.                 mimi(sec);     
  7.         }
  8.         public static void mimi(String sec)
  9.         {
  10.                 char[] sec1=sec.toCharArray();    //字符串变成字符数组,以方便对每个字符操作
  11.                 for(int i=0;i<sec1.length;i++)
  12.                 {
  13.                         if(sec1[i]>='a'&&sec1[i]<='z')
  14.                                 sec1[i]=(char) ('a'+'z'-sec1[i]);   //对是a-z的字母进行编译                       
  15.                         if(sec1[i]>='A'&&sec1[i]<='Z')
  16.                                 sec1[i]=(char)('A'+'Z'-sec1[i]);   //对是A-Z的字母进行编译
  17.                 }
  18.                 String hold=String.copyValueOf(sec1);    //从编译后的字符数组中得到新的字符串
  19.                 System.out.println("secret="+sec+"\nhold="+hold);
  20.         }
  21. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 思路清晰,适当加些注释吧

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马