程序设计思路:
首先目标是使输入的字符串加上某个数变成另一个字符串,从而相当于对字符串进行加密。
第一步输入一个字符串String类型;
第二步把这个字符串转变成字符数组;
第三步让这个数组的每一个字符加三,如果加三之后超出了26个英文字母的范围,则让这个字母减去26-3;回到前面;
’第四步输出得到的字符串。
流程图:
源程序:
import java.util.Scanner; /* * 字符的加密 * 作者:徐浩军 日期:2016.10.26 */ public class JiaMi { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("请输入一个字符串:"); Scanner input=new Scanner (System.in ); String a = input.next(); //输入一个字符串赋值给a char b[]=new char[100]; //定义一个字符数组,用于存储字符串 int i; //用于循环 System.out.print("加密后的字符串为:"); for(i=0;i<a.length();i++) //length()用于求字符串的长度 { b[i]=(char) (a.charAt(i)); //a.charAt(i)用于返回a字符串中第i 个字符 //并且存放在字符数组中 b[i]+=3; //对字符数组中的每个字符进行加三的操作,从而实现加密 if(b[i]-'a'>25){ //当加三后超出了字母字符的边界时,使它返回字母字符的开头 b[i]-=26; } //使得加三超出边界的字母返回来 System.out.print(b[i]); //输出加密后的字符 } } }
程序结果截图:
动手动脑之String.equals()方法:
String类中的equals()方法,主要用于判断当前字符串与传递进来的字符串的内容是否一致。
具体实现:
public boolean equals(Object anObject)
{
//如果是同一个对象
if (this == anObject)
{
return true;
}
//如果传递进来的参数是String类的实例
if (anObject instanceof String)
{
String anotherString = (String)anObject;
int n = count;//字符串长度
if (n == anotherString.count) //如果长度相等就进行比较
{
char v1[] = value;//取每一个位置的字符
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) //对于每一位置逐一比较
{
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
String的一些常用方法总结:
Length():获取字串长度
charAt():获取指定位置的字符
getChars():获取从指定位置起的子串复制到字符数组中(它有四个参数,在示例中有介绍)
replace():子串替换
toUpperCase()、 toLowerCase():大小写转换
trim():去除头尾空格:
toCharArray():将字符串对象转换为字符数组