04-String

Posted 安迪比尔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
 

以上是关于04-String的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

04-String——课后动手动脑

VSCode自定义代码片段6——CSS选择器