子串加密
1,设计思想
(1)输入一个字符串
(2)通过toCharArray()的方法将字符串转换成字符数组
(3)新建一个字符数组用来存储修改后的字符数组
2,程序流程图
3,源代码
package 子串加密;
import java.util.Scanner;
public class Secret {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入要加密的英文子串:");
String a=input.nextLine();
char c[]=a.toCharArray(); //将输入的字符串转化成字符数组
System.out.println("加密中……");
for(int i=0;i<1000000;i++)
{ }
char[] passWord=new char[10];
for(int i=0;i<c.length;i++){
passWord[i]=(char) (c[i]+3);
if((c[i]>=88&&c[i]<=90)||c[i]>=118&&c[i]<=122)passWord[i]=(char)(c[i]+3-26);//将字符数组加密
}
System.out.println("正确的密码为:");
System.out.println(passWord); } }
4,结果截图
1,String.equals()方法
可以用来比较两个字符串内容是否相等,即使对象或地址不同也能比较
2,整理String类的Length()、charAt()、getChars()、replace()、toUpperCase()、toLowerCase()、trim()、toCharArray()使用说明、阅读笔记
Length():获取字串长度
charAt():获取指定位置的字符
getChars():获取从指定位置起的子串复制到字符数组中(它有四个参数,在示例中有介绍)
replace():子串替换
toUpperCase()、 toLowerCase():大小写转换
trim():去除头尾空格:
toCharArray():将字符串对象转换为字符数组
3,运行StringPool.java查看输出结果。如何解释这样的输出结果?从中你能总结出什么?
True
True
False
相同地址的字符串可以比较,用new相当于新创建了一个对象,开辟了新的地址,因此,字符串不能直接比较。
4,
为什么会有上述的输出结果?从中你又能总结出什么?
(1)地址相同,字符串相同
(2)地址相同,字符串不相同
(3)类型不同,一个是字符串变量,一个是常量
(4)用equals()方法直接比较字符串内容是否相同
5,String类的方法可以连续调用:
String str="abc";
String result=str.trim().toUpperCase().concat("defg");
请阅读JDK中String类上述方法的源码,模仿其编程方式,编写一个MyCounter类,它的方法也支持上述的“级联”调用特性
Class MyCounter{
MyCounter counter1=new MyCounter(1);
MyCounter counter2=counter1.increase(100).decrease(2).increase(3);
}