字串加密
Posted s硕s
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字串加密相关的知识,希望对你有一定的参考价值。
字串加密
1.问题提出:
古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:
- 解决方法:
1.设计思想
方法1. 读入一行字符串,赋给str,利用string.charAt()函数依次取出str所存的字符,若是该字符在a-u或A-U间,将该字符加3赋给字符temp,或者该字符在v-z或V-Z间,将该字符减23赋给temp,将temp与str1连接起来赋给str1。重复该操作,直到结束循环。str1即是加密后的字符串。
方法2. 读入一行字符串,赋给s,利用String.toCharArray()将s转化为字符数组a[],再通过循环取出每个字符,判断若是该字符在a-u或A-U间,将该字符加3赋给int数组d[i],或者该字符在v-z或V-Z间,将该字符减23的值赋给d[i],再将d[i]转为对应的字符temp,将temp与str连接起来赋给str。重复该操作,直到结束循环。
综上以上两方法实质相同。
2.程序流程图
3.源代码
方法一
1 package String; 2 3 import java.util.Scanner; 4 5 public class Secret { 6 public static void main(String[] args) { 7 Scanner in=new Scanner (System.in); 8 System.out.println("输入初始字符串:"); 9 String str1=""; 10 int n=0; 11 String str=in.nextLine(); 12 n=str.length(); 13 char temp=0; 14 for(int i=0;i<n;i++) 15 { 16 if(str.charAt(i)>64&&str.charAt(i)<88||str.charAt(i)>96&&str.charAt(i)<120) 17 temp=(char)(str.charAt(i)+3); 18 else if(str.charAt(i)>87&&str.charAt(i)<91||str.charAt(i)>119&&str.charAt(i)<123) 19 temp=(char)(str.charAt(i)-23); 20 else 21 temp=(char)str.charAt(i); 22 str1+=temp; 23 } 24 System.out.println("加密后的字符串\\n"+str1); 25 } 26 }
方法二
1 package String; 2 3 import java.util.Scanner; 4 5 public class Secret { 6 public static void main(String[] args) { 7 Scanner in=new Scanner (System.in); 8 System.out.println("输入初始字符串:"); 9 String str=""; 10 char temp=0; 11 String s=in.nextLine(); 12 int d[]=new int[s.length()]; 13 char a[]=s.toCharArray(); 14 for(int i=0;i<s.length();i++) 15 { 16 if(a[i]>=\'A\'&&a[i]<=\'U\'||a[i]>=\'a\'&&a[i]<=\'u\') 17 { d[i]=a[i]+3; } 18 else if((a[i]>=\'V\'&&a[i]<=\'Z\')||(a[i]>=\'v\'&&a[i]<=\'z\')) 19 { 20 d[i]=a[i]-23; 21 } 22 else 23 d[i]=a[i]; 24 temp=(char)d[i]; 25 str+=temp; 26 } 27 System.out.println("加密后的字符串:\\n"+str); 28 } 29 30 }
4.结果截图
以上是关于字串加密的主要内容,如果未能解决你的问题,请参考以下文章