JAVA题:编写一个加密程序,对用户输入的字符串加密后输出。加密的方法是将每个字符映射成字母表中的对称

编写一个加密程序,对用户输入的字符串加密后输出。加密的方法是将每个字符映射成字母表中的对称字符。例如a对应z,b对应y,字符串“Java”加密后就成为“Qzfz”。... 编写一个加密程序,对用户输入的字符串加密后输出。加密的方法是将每个字符映射成字母表中的对称字符。例如a对应z,b对应y,字符串“Java”加密后就成为“Qzfz”。 展开
 我来答
瞬风Q无迹
2013-05-25 · TA获得超过130个赞
知道答主
回答量:62
采纳率:0%
帮助的人:63万
展开全部
 public String getPass(String str){
    String str="";
    for(int i=0;i<str.length();i++){
           char ch=str.charAt(i); //得到单个字符ch;
           if(ch>64 && ch<91){        //成立=>ch是大写字母
               str+=(char)(155-ch);  //大写对应字母之和:155 eg:'A'+'Z'=155
           }else if(ch>96 && ch<123){ //成立则ch是小写字母
               str+=(char)(219-ch);  //小写对应字母之和:219 如:'a'+'z'=219
           }else {
               str="";          //若进入此处,则说明str中有非字母字符
               return str;      //直接退出    
           }
    }
            return str;    //返回str的值;
 }
 楼主估计是新手,此处程序鄙人就不进一步优化。(可优化)
匿名用户
2013-05-24
展开全部
import java.util.HashMap;
import java.util.Map;
public class EncryptDemo {
 /**                              01234567890122109876543210*/
 private static String DEFAULT = "abcdefghijklmnopqrstuvwxyz";
 private static String regex = "[a-zA-Z]";
 private static Map<Character,Character> upperMap = new HashMap<Character,Character>();
 private static Map<Character,Character> lowerMap = new HashMap<Character,Character>();
 static {
  int length = DEFAULT.length();
  for(int i=0;i<length;i++) {
   char key = DEFAULT.charAt(i);
   char value = DEFAULT.charAt(length-1-i);
   lowerMap.put(key, value);
  }
  String DEFAULT1 = DEFAULT.toUpperCase();
  for(int i=0;i<length;i++) {
   char key = DEFAULT1.charAt(i);
   char value = DEFAULT1.charAt(length-1-i);
   upperMap.put(key, value);
  }
  
 }
 
 public static String encryptString(String string) throws Exception {
  StringBuilder sb = new StringBuilder();
  for(char ch : string.toCharArray()) {
   if(check(ch)) {
    sb.append((upperMap.containsKey(ch)?upperMap.get(ch):lowerMap.get(ch)));
   }else{
    throw new Exception("含有非法字符");
   }
  }
  return sb.toString();
 }
 
 public static boolean check(char ch) {
  String str = new Character(ch).toString();
  if(str.matches(regex)){
   return true;
  }else {
   return false;
  }
 }
 
 private EncryptDemo(){}
 
 public static void main(String[] args) throws Exception {
  System.out.println(EncryptDemo.encryptString("HelloWorld"));
  
 }
}

你看看合不合要求,仅供参考

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
paladyn_gu
推荐于2017-05-20 · 超过20用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:58.3万
展开全部
public class ChangeChar {

/**
* @param args
*/
public static void main(String[] args) {
String input = null;
Scanner scanner = new Scanner(System.in);
input = scanner.next();
StringBuffer changed = new StringBuffer();

for(int i = 0;i < input.length();i++){
char x = input.charAt(i);

if(input.charAt(i) >= 'a' && input.charAt(i) <= 'z'){
x = (char) ('a' + 'z' - x);
changed.append(x);
}else if(x >= 'A' && x <= 'Z'){
x = (char) ('A' + 'Z' - x);
changed.append(x);
}else{
continue;
}
}
System.out.println(changed);
}

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
度娘的大爷haha
2013-05-27 · 知道合伙人软件行家
度娘的大爷haha
知道合伙人软件行家
采纳数:49 获赞数:304
好学好钻研,代码是一门艺术

向TA提问 私信TA
展开全部
加减法的问题 这个还不简单么 注意ASCII字符集值即可 只有26个字母 对应输出即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式