zoukankan      html  css  js  c++  java
  • 课程作业04——动手动脑(字符串String)

    字符串加密

    一、    程序设计思想

    (1)  输出提示,是选择加密还是解密;定义flag,输入选择;

    (2)  定义int i;int  c(存放加密或解密后的字符的ASCII);String S(存放输入的字符串),s(存放加密后或解密后的字符串);

    (3)  如果flag==1,输入要加密的字符串,然后利用for循环,取到每一个字符,然后ASCII加3(但是 x,y,z变成a,b,c),用c存放加密后的字符的ASCII,然后然后经过强制类型转换变成字符加到s上;

    (4)  如果flag==2,输入要解密的字符串,然后利用for循环,取到每一个字符,然后ASCII减3(但是a,b,c变成x,y,z),用c存放解密后的字符的ASCII,然后经过强制类型转换变成字符加到s上;

    (5)  输出s;

    二、    程序流程图

    三、    源代码

    import java.util.Scanner;
    public class Caessar {
    
        public static void main(String[] args) {
            // 信1605-3 20163693 王晓丹
            System.out.print("1 加密情报 2 解密情报,请选择(1/2):");
            Scanner input=new Scanner(System.in);
            int flag=1;
            flag=input.nextInt();//输入选择
            if(flag!=1&&flag!=2)//判断输入是否正确
            {
                System.out.println("输入错误!");
                System.exit(0);
            }
            int i=0;
            int  c;
            String S="";
            String s="";
            if(flag==1)
            {
                System.out.print("请输入需要加密的情报: ");
                S=input.next();
                 for(;i<S.length();i++)
                 {
                     c=(int)(S.charAt(i)+3);//取到当前位置的字符并加3
                     if(c<=125&&c>=123)//x,y,z加3之后是123-125
                     {
                         c=c-26;//x,y,z变成a,b,c
                     }
                     if(c<=93&&c>=91)//X,Y,Z加3之后是91-93
                     {
                         c=c-26;//X,Y,Z变成A,B,C
                     }
                     s=s+(char)c;//加密后的字符依次相加
                 }
                 System.out.println("加密后的情报是:"+s);
            }
           
            else
            {
                System.out.print("请输入需要解密的情报: ");
                S=input.next();
                for(;i<S.length();i++)
                {
                    c=(int)(S.charAt(i)-3);//取到当前位置的字符并减3
                    if(c<=96&&c>=94)//a,b,c减3之后是94-96
                     {
                         c=c+26;//a,b,c变成x,y,z
                     }
                     if(c<=64&&c>=62)//A,B,C减3之后是62-64
                     {
                         c=c+26;//A,B,C变成X,Y,Z
                     }
                     s=s+(char)c;//解密后的字符依次相加
                }
                System.out.println("解密后的情报是:"+s);
            }
            
            
        }
    
    }

    四、    结果截图

    “联级”调用

    public class StringTest {
    
        public static void main(String[] args) {
            String str="abc";
            String result=str.trim().toUpperCase().concat("defg");
            System.out.println(result);
        }

    public class TestLianJi {
    
        public static void main(String[] args) {
             //信1605-3 20163693 王晓丹
            MyCounter counter1=new MyCounter(1);
            MyCounter counter2=counter1.increase(100).decrease(2).increase(3);
            System.out.println(counter2.data);
    
        }
    }
    class MyCounter
    {
        int data;
    
        public MyCounter()
        {
        }
        public MyCounter(int d)
        {
            data=d;
        }
        public MyCounter increase(int d)
        {
            MyCounter counter=new MyCounter();
            counter.data=data+d;
            return counter;
        }
        public MyCounter decrease(int d)
        {
            MyCounter counter=new MyCounter();
            counter.data=data-d;
            return counter;
        }
    }

     

    String类的使用

    1.  String.equals()

    equals的作用:用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型

    equals的基本使用:boolean a= b.equals(c);

    String类型比较不同对象内容是否相同,应该用equals,因为==用于比较引用类型和比较基本数据类型时具有不同的功能。

    2.  length()

    取到字符串的长度,例如s.length()返回的是字符串s的长度;

    3.  charAt()

    取字符串指定位置的字符,例如c=”exc”,c.charAt(1)=’b’

    4.  getChars()

    将这个字符串字符复制到目的字符数组getChars(srcBegin,srcEnd,dst,dstBegin),其中srcBegin是字符串中要拷贝的第一个字符的位置,srcEnd是字符串中要拷贝的最后一个字符的位置,dst是目的字符数组,dstBegin是开始粘贴字串的下标

    5.  replace()

    replace(char oldChar, char newChar)

    返回一个新的字符串,它是通过用 newChar替换此字符串中出现的所有oldChar得到的。如 果 oldChar 在此 String 对象表示的字符序列中没有出现,则返回对此 String 对象的引用。否则,创建一个新的 String 对象,用来表示与此 String 对象表示的字符序列相等的字符序列,除了每个出现的 oldChar 都被一个 newChar 替换之外。

    6.  toUpperCase()

    此方法返回转换为大写的字符串。

    例如:

    String str1 = "This is YiiBai";

    System.out.println("string value = " + str1.toUpperCase());

    str1 = "www.yiibai.com";

    System.out.println("string value = " + str1.toUpperCase());

    输出结果是:

    string value = THIS IS YIIBAI

    string value = WWW.YIIBAI.COM

    7.  toLowerCase()

    返回把原字符串所有大写字母都变成小写的字符串。

    例如:

    String strVariable = "This is a STRING object";

    strVariable = strVariable.toLowerCase();

    输出结果是:

    this is a string object

    8.  trim()

    去掉字符串首尾的空格。

    String a=" hello world ";

    String b="hello world";

    System.out.println(b.equals(a)); 

    a=a.trim();//去掉字符串首尾的空格 

    System.out.println(a.equals(b)); 

    输出结果是:

    a: hello world,false

    a:hello world,true

    9.  toCharArray()

    将字符串对象中的字符转换为一个字符数组  

    例如:   

    String myString="abcd";  

    char myChar[]=myString.toCharArray();  

    System.out.println("myChar[1]="+myChar[1]);   

    输出结果:  

    myChar[1]=b  

  • 相关阅读:
    [转载]解决zabbix在configure时候遇到的问题(Ubuntu)
    [转载]ubuntu的版本
    [转载]Nginx如何处理一个请求
    微信小程序—文件系统
    javascript 中 x offsetX clientX screenX pageX的区别
    Bootstrap 框架、插件
    HTML自定义滚动条(仿网易邮箱滚动条)转载
    Vue 组件(上)转载
    vue $mount 和 el的区别
    $on在构造器外部添加事件$once执行一次的事件$off关闭事件
  • 原文地址:https://www.cnblogs.com/wxd136/p/7737965.html
Copyright © 2011-2022 走看看