字串加密
2017-10-26 14:26 默默不语 阅读(269) 评论(0) 编辑 收藏 举报1.程序设计思想
① 定义一个类,在类中定义加密,解密的方法,后期可由用户选择进行加密操作还是解密操作。
② 在类中,数据成员为String类型的变量,构造函数有一个参数用于为数据成员赋值。
③ 在加密函数中,将字符串转为字符数组,利用循环将数组中的每一个字符进行+、-操作,将其转换为加密后对应的字符,然后将加密后的字符串输出到屏幕。
④ 解密函数与加密函数类似。
⑤ 在主函数中,提示用户输入字符串后,定义对象,将用户输入的字符串作为其参数。
⑥ 提示用户想要进行的操作(加密/解密),用户输入选项后,根据用户的选项调用相应的方法。
2.程序流程图
3.程序源代码
import java.util.Scanner; public class StringEncryption { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入字符串:");//提示用户输入字符串 Scanner input=new Scanner(System.in); String letter="***";//对字符串进行初始化 int choose=0; if(input.hasNextLine())//判断用户输入是否合法 { letter=input.nextLine();//用户输入合法 } else//用户输入不合法,报错并结束程序 { System.out.println("输入错误!"); System.exit(0); } Rome R=new Rome(letter);//定义对象 System.out.println("请选择您要进行的操作:1.加密 2.解密");//提示用户选择想要进行的操作 System.out.println("请选择:"); if(input.hasNextInt())//判断用户输入是否合法 { choose=input.nextInt();//输入合法 } else//用户输入不合法,报错并结束程序 { System.out.println("输入错误!"); System.exit(0); } if(choose==1)//用户选择对字符串加密 { R.encryption();//调用加密的函数 } else if(choose==2)//用户选择对字符串进行解密 { R.decryption();//调用解密的函数 } else//用户输入错误,报错并结束程序 { System.out.println("输入错误!"); System.exit(0); } } } class Rome//定义Rome类实现加密和解密的功能 { String string; public Rome(String string)//构造函数对数据成员进行初始化 { this.string=string; } public void encryption()//实现加密功能 { char letter[]=new char[string.length()];//定义与字符串等长的数组 letter=string.toCharArray();//将字符串转换为数组 int i=0; for(i=0;i<string.length();i++)//将字符转换为加密后的字符 { if((letter[i]>=65&&letter[i]<=87)||(letter[i]>=97&&letter[i]<=119)) { letter[i]+=3; } else { letter[i]-=23; } } for(i=0;i<string.length();i++)//将加密后的字符串输出到屏幕 { System.out.print(letter[i]); } } public void decryption()//实现加密功能 { char letter[]=new char[string.length()];//定义与字符串等长的数组 letter=string.toCharArray();//将字符串转换为数组 int i=0; for(i=0;i<string.length();i++)//将字符转换为解密后的字符 { if((letter[i]>=68&&letter[i]<=90)||(letter[i]>=100&&letter[i]<=122)) { letter[i]-=3; } else { letter[i]+=23; } } for(i=0;i<string.length();i++)//将解密后的字符串输出到屏幕 { System.out.print(letter[i]); } System.out.print("\n"); } }
4.结果截图