zoukankan      html  css  js  c++  java
  • JAVA动手动脑及课后作业

    1.查看其输出结果。如何解释这样的输出结果?从中你能总结出什么?

     

    运行结果

    true

    true

    false

    原因

      1)在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0s1s2实际上引用的是同一个对象。

      2)编译器在编译s2一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“Hello”)。这种优化工作由Java编译器自动完成。

      3)当直接使用new关键字创建字符串对象时,虽然值一致(都是“Hello”),但仍然是两个独立的对象。

     

    为什么会有上述的输出结果?从中你又能总结出什么?

      1)给字串变量赋值意味着:两个变量(s1s2)现在引用同一个字符串对象“a”!

      2String对象的内容是只读的,使用“+”修改s1变量的值,实际上是得到了一个新的字符串对象,其内容为“ab”,它与原先s1所引用的对象”a”无关,所以,s1==s2返回false

      3)代码中的“ab”字符串是一个常量,它所引用的字符串与s1所引用的“ab”对象无关。

      4String.equals()方法可以比较两个字符串的内容。

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

    }

    3.String类中函数的使用方法

    1.length()

      作用:获取字符串的长度

      String a=”abc”;

      Int b=a.length();

    2.charAt()

      作用:获取指定位置的字符

      String a=”abc”;

      Char b=a.charAt(3);

    3.getChars()

      作用:获取从指定位置起的子串复制到字符数组中

      String s1=”abc”;

      Char s2=new char[5];

      S1.getChars(0,2,s2,0);   //s1中的下标为0,1,2的字符复制到s2中从0开始的位置

    4.Replace()

      作用:子串替换

      String s1=”abcd”,s2;

      S2=s1.replace(“ab”,”12”);

    5.toUpperCase()

      作用:大写转换

      String s1=”abc”;

      s1.toUpperCase()=ABC  

    6.toLowerCase()

      作用:小写转换

      String s1=”ABC”;

      s1.toLowerCase()=abc

    7.Trim()

      作用:去除头尾空格

      String s1=”   abcd”;

      s1=s1.tirm();

      s1=”abcd”

    8.toCharArray()

      作用:将字符串对象转换为字符数组

      String s1=”abcd”;

      Char [] s2=s1.toCharArray();

    4.字符串加密

    设计思想

       1.首先使用Scanner类输入一个字符串;

       2.charAt类将字符串中的一个个字符取出来;

       3.将每个字符加上3,再强制转换成char类型,并将字符赋值到定义的char类型的数组里;

       4.判断字符是否是想,x,y,z,如果是则加上3后再减去26

       5.最后将定义的char类型的数组内容输出;

    流程图

     

    源代码

    import java.util.Scanner;

    public class Jiami {

            public static void main(String[] args){

                     String s1="";

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

                     Scanner sc=new Scanner(System.in);

                     s1=sc.next();

                     sc.close();

                     char[] s2=new char[s1.length()];

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

                   {

                         s2[i]=(char) (s1.charAt(i)+3);

                         if(s1.charAt(i)>='x'&&s1.charAt(i)<='z'||s1.charAt(i)>='X'&&s1.charAt(i)<='Z')

                        s2[i]=(char) (s1.charAt(i)+3-26);

                    }

                    System.out.println("加密后的字符串为:");

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

                        System.out.print(s2[i]+" ");

           }

    }

    截图

     

  • 相关阅读:
    杭电ACM 1297 Children’s Queue
    杭电ACM 1297 Children’s Queue
    Delta-wave
    
    <MySQL>MySQL创建表及相关约束
    <MySQL>MySQL的基本操作(增,删,改)
    <MySQL>MySQL的安装及安装中存在的问题
    <python>python中拷贝的问题
    <python>简单的学生管理系统V1.0
    <python>编写装饰器,为多个函数加上记录调用功能,要求每次调用函数都将被调用的函数名称写入文件
  • 原文地址:https://www.cnblogs.com/Zhanghaonihao/p/6004889.html
Copyright © 2011-2022 走看看