课程作业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  

原文地址:https://www.cnblogs.com/wxd136/p/7737965.html