04-String

课后作业1:字串加密

设计思想:根据题目的要求,我发现每个字母其实后移了三位,比如A对应D,因此,在程序中,可以把输入的字符串的每个字符后裔三位,这是加密的字符,解密的字符反一下就行。

程序流程图:

源代码:

import java.util.Scanner;

public class Password {
public void jiemi()

{
String input,output;
Scanner cin=new Scanner(System.in);
System.out.println("输入需要解密的字符串:");
input=cin.next();
for(int i=0;i<input.length();i++)
{
char a[]=new char[input.length()];
a[i]=input.charAt(i);
char b[]=new char[input.length()];
if(a[i]!='X'&&a[i]!='Y'&&a[i]!='Z')
b[i]=(char) (a[i]+3);
else
b[i]=(char) (a[i]-23);

System.out.print(b[i]);
}
}
public void jiami()
{
String input,output;
Scanner cin=new Scanner(System.in);
System.out.println("输入需要加密的字符串:");
input=cin.next();
for(int i=0;i<input.length();i++)
{
char a[]=new char[input.length()];
a[i]=input.charAt(i);
char b[]=new char[input.length()];
if(a[i]!='A'&&a[i]!='B'&&a[i]!='C')
b[i]=(char) (a[i]-3);
else
b[i]=(char) (a[i]+23);

System.out.print(b[i]);
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根

System.out.println("1.加密");
System.out.println("2.解密");
System.out.println("选择功能:");
int n;
Scanner cin=new Scanner(System.in);
n=cin.nextInt();
Password p=new Password();
switch(n)
{
case 1 : {p.jiami();break;}
case 2 : {p.jiemi();break;}
}


}

}

结果截图:

String.equals()方法的实现代码:

public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String) anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                            return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

  

(1)String类中的equals首先比较地址,如果是同一个对象的引用,可知对象相等,返回true。

(2)若果不是同一个对象,equals方法挨个比较两个字符串对象内的字符,只有完全相等才返回true,否则返回false。

String类的Length():

public int length()//返回该字符串的长度

String str = new String("asdfzxc");
int strlength = str.length();//strlength = 7

charAt():
public char charAt(int index)//返回字符串中指定位置的字符;注意字符串中第一个字符索引是0,最后一个是length()-1。
1 String str = new String("asdfzxc");

2 char ch = str.charAt(4);//ch = z
getChars():

public void getChars(int start,int end,char c[],int offset)

        该方法的作用是将当前字符串从start到end-1位置上的字符复制到字符数组c中,并从c的offset处开始存放

replace():

public String replace(char oldChar, char newChar)//用字符newChar替换当前字符串中所有的oldChar字符,并返回一个新的字符串

toUpperCase():

public String toUpperCase()//返回将当前字符串中所有字符转换成大写后的新串

toLowerCase():

public String toLowerCase()//返回将当前字符串中所有字符转换成小写后的新串

trim():

tring trim()//截去字符串两端的空格,但对于中间的空格不处理。

1 String str = " a sd ";
2 String str1 = str.trim();
3 int a = str.length();//a = 6
4 int b = str1.length();//b = 4
toCharArray():
将字符串对象中的字符转换为一个字符数组
例如:

String myString="abcd";
char myChar[]=myString.toCharArray();
System.out.println("myChar[1]="+myChar[1]);
输出结果:

myChar[1]=b
 

转载于:https://www.cnblogs.com/andibier/p/7739653.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值