zoukankan      html  css  js  c++  java
  • 05课堂问题整理

    05课堂问题整理

    1、古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。

    ①设计思想

    首先输入字符串,再定义一个char类型的数组,一个char类型变量。用for循环,将String类型字符串转化为char类型数组,来初始化char类型的数组。再比较数组中每一个字符在哪个范围,转化为相应的字符存在char类型变量中,然后输出。

    ②程序流程图

    ③源代码

    package demo;

    import java.util.Scanner;

     

    public class JiaMi {

        public static void main(String [] args){

         Scanner input =new Scanner(System.in);

         System.out.println("请输入一个字符串:");

         String str=input.next();

         input.close();

        

         int len=str.length();//字符串长度

         char ch[];

         char ch1=0;

         for(int i=0;i<len;i++){

         ch=str.toCharArray();//String类型的字符串转化成char类型的数组

         if(ch[i]>='a'&&ch[i]<='w')

         ch1=(char)(ch[i]+3);

         else if(ch[i]>='x'&&ch[i]<='z')

         ch1=(char)(ch[i]-23);

         else if(ch[i]>='A'&&ch[i]<='W')

         ch1=(char)(ch[i]+3);

         else if(ch[i]>='X'&&ch[i]<='Z')

         ch1=(char)(ch[i]-23);

         else System.out.println("Error");

        

         System.out.print(ch1);

         }

        }

    }

    ④结果截图

     

     

    2、课后作业之字串加密、动手动脑之String.equals()方法、整理String类的Length()charAt()getChars()replace()toUpperCase()toLowerCase()trim()toCharArray()使用说明、阅读笔记发表到博客园。

    1)字符串加密:在上面。

    2)①请运行以下示例代码StringPool.java,查看其输出结果。如何解释这样的输出结果?从中你能总结出什么?

    public class StringPool {

    public static void main(String args[])

       { 

    String s0="Hello";

    String s1="Hello";

    String s2="He"+"llo";

    System.out.println(s0==s1);//true

    System.out.println(s0==s2);//true

    System.out.println(new String("Hello")==new String("Hello"));//false

    }

    }

    分析:内容相同的字串常量只保存一份以节约内存,所以s0s1s2实际上引用的是同一个对象。所以输出结果是true当直接使用new关键字创建字符串对象时,虽然值一致,但仍然是两个独立的对象,导致输出结果为false

    请查看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;
    }

        对于object类的equals()方法,判断调用该方法的对象与要比较的对象是不是同一个对象(判断地址),而String类中的equals()方法,则判断当前字符串与传递进来的字符串的内容是否一致。

    3)string.length()用来求字符串的长度,返回字符串的长度。

     string.charAt()为取该字符串某个位置的字符。

     string.getChars()为将这个字符串中的字符复制到目标字符数组。

         string.replace()为将原string 中的元素或子串替换。返回替换后的string。

        string.toUpperCase()为将字符串string中字符变为大写。

       string.toLowerCase()为将字符串string中字符变为小写。

       string.trim()为去除字符串的头为空格。

       string.toCharArray()为将字符串转换为字符数组。

     

     

     

  • 相关阅读:
    MySql数据库时区异常,java.sql.SQLException: The server time zone value '?й???׼ʱ?' is unrecognized or represents more than one time zone.
    SpringBoot中自定义properties文件配置参数并带有输入提示
    Springboot2.x 集成jsp
    Spring Boot使用AOP实现REST接口简易灵活的安全认证
    Spring Boot使用过滤器和拦截器分别实现REST接口简易安全认证
    Spring Boot使用RestTemplate消费REST服务的几个问题记录
    Spring Boot开发MongoDB应用实践
    Spring Boot定时任务应用实践
    Spring Boot缓存应用实践
    Spring Boot消息队列应用实践
  • 原文地址:https://www.cnblogs.com/hjy415/p/6005593.html
Copyright © 2011-2022 走看看