(一)古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:请编写一个程序,使用上述算法加密或解密用户输入的英文字串。
1.设计思想:首先选择是加密字符串还是解密字符串,两种算法相似。如果要加密字符串,则需要考虑特殊字符,就是XYZ这三个字符;相应的解密字符串类似,也需要考虑ABC这三个字符。
2.程序流程图
3.源代码
import java.util.Scanner; public class work1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); int num=0; System.out.println("(1加密字符串,2解密字符串)"); System.out.print("请选择:"); num=scanner.nextInt(); if(num==1) { System.out.print("请输入需要加密的字符串:"); String str=scanner.next(); scanner.close();//这是啥意思? System.out.print("加密后:"); char a=‘a‘; for(int i=0;i<str.length();i++) { char a2=str.charAt(i); if(a2>=‘A‘&&a2<=‘Z‘) { if(a2>=‘X‘&&a2<=‘Z‘) { if(a2==‘X‘) a=‘A‘; if(a2==‘Y‘) a=‘B‘; if(a2==‘Z‘) a=‘C‘; } else { a=(char)(a2+3);} } System.out.print(a);} } if(num==2) { System.out.print("请输入需要解密的字符串:"); String str=scanner.next(); char b=‘b‘; System.out.print("解密后:"); for(int j=0;j<str.length();j++) {char b2=str.charAt(j); if(b2>=‘A‘&&b2<‘Z‘) { if(b2>=‘A‘&&b2<‘D‘) { if(b2==‘A‘)b=‘X‘; if(b2==‘B‘)b=‘Y‘; if(b2==‘C‘)b=‘Z‘; } else { b=(char)(b2-3);} } System.out.print(b);} } } }
4.结果截图
(二)动手动脑
1.String.equals()方法:比较的是两个字符串的内容。
2.Length():获取字符串的长度。
3.charAt():获取指定位置的字符。
4. getChars():获取从指定位置起的子串复制到字符数组中。
5.replace():子串替换。
6.toUpperCase():全部字符变为大写,返回新字符串。
7. toLowerCase():全部字符变为小写,返回新字符串。
8.trim():去除头尾空格。
9.toCharArray():将字符串对象转换为字符数组。
时间: 2024-10-10 07:12:51