首页 > 代码库 > JAVA字符串05之课程问题解决

JAVA字符串05之课程问题解决

(一)古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:请编写一个程序,使用上述算法加密或解密用户输入的英文字串。

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():将字符串对象转换为字符数组。

 

JAVA字符串05之课程问题解决