字符串及课堂例子整理

编程思路:通过参数传入要加密的字符。凯撒密码器只是通过移动的位数,这里不妨通过命令行参数传入。由于移动的位数为整数,因此使用Integer.parseInt( )方法进行了转换。由于字母表中共26个字符,所以移位前先将移动的位数(key)26取模。由于Java中字符和整型可自动转换,因此将字符加上一个正整数即代表在字母表中右移多少位。如果移动的位数是负值,则代表在字母表中左移多少位。就得出来了。

编程流程图

加密方法:

实验代码:

import java.util.Scanner;
public class G {

public static void main(String[] args) {
// TODO 自动生成的方法存根
        Scanner input = new Scanner(System.in);
        String q=new String();
        System.out.println("请输入一个字符串:");//字符串的输入
        q=input.nextLine();
        char []a=q.toCharArray();
         System.out.println("请问需要加密还是解密?(加密输入1,解密输入0)");//需要解密或者是加密
   int qq = input.nextInt();
if(qq==1)//加密
    {
          for(int i=0;i<q.length();i++)//从第一个字符开始操作
        {
    a[i]=(char)(a[i]+3);//每一个字符加三
   if((a[i]>'Z'&&a[i]<'a')||a[i]>'z')
{
       a[i]=(char)(a[i]-26);//当字符位于Z和a之间或者大于z时字符减26
}

}
String q1=new String(a);
System.out.println("加密后的字符串为:"+q1);//输出加密后的字符串
}
if(qq==0)//解密
{
for(int i=0;i<q.length();i++)//从第一个字符开始操作
{
a[i]=(char)(a[i]-3);//每一个字符加三
if((a[i]>'Z'&&a[i]<'a')||a[i]<'A')
{
a[i]=(char)(a[i]+26);//当字符位于Z和a之间或者小于A时字符加26
}
}
String q1=new String(a);
System.out.println("解密后的字符串为:"+q1);//输出加密后的字符串
}
}

}

  实验截图:

 string类函数使用说明:

    1.   String.equals():判断两个字符对象的内容是否相等;

    2.   length():求字符或字符串的长度。字符串长度用length();数组可以用length;

    3.   charAt():得到字符串中某个位置的字符值。索引范围是从0到length() - 1;

    4.   getChars():把某位置开始的子串复制到某个数组中;

    5.   replace():子串替换用法就是将字符串中的某子串替换为另一个子串;

    6.   toUpperCase():小写转换为大写 ;()内可以是String char类型的变量名也可以是“字符串”。

    7.   toLowerCase():大写转换为小写; ()内可以是String char类型的变量名也可以是“字符串”。

    8.   trim():消除首尾空格;

    9.   toCharArray():将字符对象转化为char数组;

原文地址:https://www.cnblogs.com/hanzhu/p/4909816.html