程序设计思想:
1.首先定义三个String字符串是s1,s2,s3,利用对话框(只能输入String类)输入字符串s1。
2.利用s1.length()计算s1的长度。
3.创建一个s1.length()的char数组。
4.利用循环将s1中每一个字符转换成char字符储存在数组中,同时每个char加key会自动转换成int类型,再利用强制类型转换成char。
5.调用s2的构造方法将字符数组赋值给s2。
6.利用对话框输出加密后的字符串。
7.重复上述方法将s2转换为未加密前的字符串存储在s3中。
第三步出现错误没有找到一个函数可以把String类型中的每一个字符串转换为整数,只有s1.charAt()将每一个转化为char类型的字符。
所以经过改正以后先利用char类型的数组储存在储存的同时加key,因为key为整数,所以加上key之后就变为整数了(字母相应的变为ACII码)再利用强制类型转换,将整数转换为char字符。
import javax.swing.*; public class Project { public static void main(String args[]) { String s1, s2, s3; s1=JOptionPane.showInputDialog("请输入要加密的字符串:"); char c[]; c=new char[s1.length()]; int a; for(int i=0;i<s1.length();i++) { c[i]=s1.charAt(i); a=c[i]+3; c[i]=(char)a; } s2=new String(c); JOptionPane.showMessageDialog(null,"加密后的字符串是:"+ s2,"result",JOptionPane.PLAIN_MESSAGE); for(int i=0;i<s1.length();i++) { c[i]=s2.charAt(i); a=c[i]-3; c[i]=(char)a; } s3=new String(c); JOptionPane.showMessageDialog(null, "解密后的字符串是:"+s3,"results",JOptionPane.PLAIN_MESSAGE); } }
时间: 2024-12-20 21:34:01