• 动手动脑与作业


    一、古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:请编写一个程序,使用上述算法加密或解密用户输入的英文字串。

    1.设计思想

    输入数据后,输入数字n,若n>5,则为加密过程,数据按ASCII码转化为int型,转化得来的数字加数字做为加密后的数据,再将这些数据转化为字符,这就是加密。若n<5,则为解密过程,数据按ASCII码转化为int型,转化得来的数字减数字做为解密后的数据,再将这些数据转化为字符,这就是解密。

    2.程序流程图

    3.源代码

    //信1403-1班 张妞妞   加解密

    import java.util.Scanner;

    public class Jjiemi

    {

    public static void main(String[] args) 

    {

    // TODO Auto-generated method stub

    String input = null;

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入数据:");

    input = sc.next();

    StringBuffer changed = new StringBuffer();

            Scanner sc1=new Scanner(System.in);

    System.out.println("请输入数字n:");

            int a;

            a=sc1.nextInt();      //输入数字n

            if(a>5)

            {

         System.out.println("加密:");    

         for(int i = 0;i < input.length();i++)

         {

         char x = input.charAt(i);

        

         if(input.charAt(i) >= 'a' && input.charAt(i) <= 'z')

         {

         x = (char) ('a'  + 'z' - x);

         changed.append(x);

         }

         else if(x >= 'A' && x <= 'Z')

         {

         x = (char) ('A'  + 'Z' - x);

         changed.append(x);

         }

         else

         {

         continue;

         }

         }

            }

            else 

            {

         System.out.println("解密:");

         for(int i = 0;i < input.length();i++)

         {

         char x = input.charAt(i);

        

         if(input.charAt(i) >= 'a' && input.charAt(i) <= 'z')

         {

         x = (char) ('z'  + 'a' - x);

         changed.append(x);

         }

         else if(x >= 'A' && x <= 'Z')

         {

         x = (char) ('Z'  + 'A' - x);

         changed.append(x);

         }

         else

         {

         continue;

         }

         }

            }

    System.out.println(changed);

    }

    }

    4.结果截图

     

    二.动手动脑之String.equals()方法

    String.equals() 方法比较字符串与指定的对象。其结果是true当且仅当参数不为null,并且是一个String对象,这个对象表示相同的字符序列 

    ==是看两个对象是否是同一个对象,也就是两个对象引用是否指向同一个对象(Java分配的内存地址一样)当然如果用于int,long,double就不是看两个值是否相等了。 

    equals()是比较两个对象的内容是否相等,一般如果用户自己不定义针对自己的类的equals()方法,那么就会使用Object的活着你的类的父类的这个方法。如果你的类里没有对象引用的域,就不必要覆盖equals()(注意String域也是对象)String有自己的equals()方法

    三.整理String类的Length()、charAt()、getChars()、replace()、toUpperCase()、toLowerCase()、tirm()、toCharArray()使用说明

    1. Length()可以求字符串长度(字符个数),比如str.Length();求出str长度。

    2. charAt()获取指定位置的字符str.charAt(0);获取str的第0位的字符。

    3. getChars()获取从指定位置起的子串复制到字符数组中,比如 s1.getChars(0,5,charArray,0);四个参数的含义:1.被拷贝字符在字串中的起始位置。2.被拷贝的最后一个字符在字串中的下标再加1。3.目标字符数组。4.拷贝的字符放在字符数组中的起始下标。

    4. replace(),替换字符串replace(oldstring,newstring);用新字符串代替旧字符串。

    5. toUpperCase():将字符串转化为大写形式,比如str.toUpperCase();将str中所有小写转换成大写。

    6. toLowerCase():将字符串转化为小写形式,比如str.toLowerCase();将str中所有大写转换成小写。

    7. trim():去除前导空白和尾部空白,比如str=” abc ”str.tirm();将str头尾的空格去掉。

    8. toCharArray()将字符串对象转换为字符数组(需要一个新的char[]数组来保存)str.toCharArray();将str转换成char数组。

  • 相关阅读:
    【刷题】BZOJ 4059 [Cerc2012]Non-boring sequences
    【刷题】BZOJ 3745 [Coci2015]Norma
    【刷题】BZOJ 2734 [HNOI2012]集合选数
    【刷题】BZOJ 2287 【POJ Challenge】消失之物
    【刷题】BZOJ 2151 种树
    【刷题】BZOJ 2134 单选错位
    【刷题】BZOJ 1924 [Sdoi2010]所驼门王的宝藏
    【刷题】BZOJ 1823 [JSOI2010]满汉全席
    【刷题】BZOJ 1124 [POI2008]枪战Maf
    编程之美 ---> 1.2中国象棋将帅问题
  • 原文地址:https://www.cnblogs.com/znn123/p/4907464.html
Copyright © 2020-2023  润新知