课后作业:字串加密

1.设计思想

  先把输入的字符串转化为字符数组,利用for循环对字符进行加密,或者解密,最后注意把26个英文字母中的A B C和X Y Z互相进行转换,从而完成加密。

2.程序流程图

 

3.源代码

package test2;

import java.util.Scanner;//引入Scanner类包

public class JiaMi
{
public static void main(String[] args)
{

   System.out.println("选择要进行的操作:1-加密 2-解密");
   Scanner input=new Scanner(System.in);//输入语句
  int c=input.nextInt();
  if(c==1)
  {
    System.out.println("请输入要加密的字符串:");
    String str=input.next();//将输入的字符串存到str中
    char[] a=new char[str.length()];//创建字符数组a
    a=str.toCharArray();//将用户输入的字符串通过toCharArray()转化为字符数组存到a中
    for(int i=0;i<str.length();i++)//将用户输入的X、Y、Z特殊处理转化为A、B、C
    {
      if(a[i]=='X')
      {
        a[i]='A';
      }
      else if(a[i]=='Y')
      {
        a[i]='B';
      }
      else if(a[i]=='Z')
      {
        a[i]='C';
      }
      else
      {
        a[i]=(char)(a[i]+3);//将一般的数组字符直接加3然后强制类型转化为char类型
      }
      }
      String s="";
      for(int i=0;i<str.length();i++)//将字符数组转化为字符串
      {
        s=s+a[i];
      }
      System.out.println("加密后的字符串为:\n"+s);//输出语句

      }
  else if(c==2)
  {
    System.out.println("请输入要解密的字符串:");
    String str=input.next();//将输入的字符串存到str中
    char[] a=new char[str.length()];//创建字符数组a
    a=str.toCharArray();//将用户输入的字符串通过toCharArray()转化为字符数组存到a中
    for(int i=0;i<str.length();i++)//将用户输入的A、B、C特殊处理转化为X、Y、Z
    {
      if(a[i]=='A')
      {
        a[i]='X';
      }
      else if(a[i]=='B')
      {
        a[i]='Y';
      }
      else if(a[i]=='C')
      {
        a[i]='Z';
      }
      else
      {
        a[i]=(char)(a[i]-3);//将一般的数组字符直接减3然后强制类型转化为char类型
      }
    }
    String s="";
    for(int i=0;i<str.length();i++)//将字符数组转化为字符串
    {
      s=s+a[i];
    }
    System.out.println("解密后的字符串为:\n"+s);//输出语句
    }
  }
}

4.结果截图


 

posted on 2017-10-27 13:54  宛英东  阅读(213)  评论(0编辑  收藏  举报