• 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
     
  • 相关阅读:
    机器学习-分类简单介绍
    状态压缩动态规划 -- 旅行商问题
    30 天学习 30 种新技术系列
    Sublime Text3 高亮显示Jade语法 (Windows 环境)
    程序启动缓慢-原来是hbm.xml doctype的原因
    Spring4 Hibernate4 Struts2在WebLogic 10.3.3上面部署
    Spring的 classpath 通配符加载配置文件
    nmp install 异常
    cvc-complex-type.2.4.c: The matching wildcard...
    LazyInitializationException--由于session关闭引发的异常
  • 原文地址:https://www.cnblogs.com/andibier/p/7739653.html
Copyright © 2020-2023  润新知