• 课堂作业四之字符串的动手动脑 及相关解答


    1.

    解释及总结:java中,内容相同的字符串常量只保存一份,即上述三者内存地址一样,即同一个对象;java语言定义的“+”运算符可以用于两个字符串的链接操作(如果字符串与其他类型的变量进行+运算,系统自动将其他类型的数据类型转换为字符串类型),这种优化工作由java编译器自动完成;当使用new关键字创建字符串对象时,虽然值一致,但是创建了两个对象,内存地址不同,所以除了对象的赋值,直接判等都是false。

    解释:s2=s1属于对象的赋值,两者的内存地址是一致的,即此时两个变量现在引用的是同一个字符串对象,所以第一个判等s1==s2是true的;再看,接下来用了+运算符,作字符串的连接,使之成为新的字符串ab,此时对象s2未变,s1变了,理所是false。string对象的内容是只读的,使用了+运算符实际上得到了一个新的字符串对象;代码中的“ab”是一个字符串常量,他所引用的字符串与s1所引用的“ab”对象无关;字符串常用函数String.equals()和qaualsIgnoreCase()的方法比较两字符串内容是否相等;使用判断等==比较两字符串变量是否引用的同一字符串对象,如下代码:

     

    2.

    如下:

    (1)equals方法的定义(String类中的equals方法是对父类Object类中的equals方法的覆盖()):

    (2)Object类的equals方法(直接return (this==obj)此处 某个对象调用该方法,this 就指代那个对象。):

    (3)equals如何判断:

     判断条件:

        若当前对象和比较的对象是同一个对象,即return true。也就是Object中的equals方法。

        若当前传入的对象是String类型,则比较两个字符串的长度,即value.length的长度。

        若长度不相同,则return false

        若长度相同,则按照数组value中的每一位进行比较,不同,则返回false。若每一位都相同,则返回true。

        若当前传入的对象不是String类型,则直接返回false。

    3.字符串常用功能:

      1、String.equals():用来检测两个String类型的对象是否相等,不能简单用“==”来判断两个字符串内容相等。

      2、Length():可以求出一个字符串的长度。

      3、charAt():用于返回指定索引处的char值。

      4、getChars():将字符从此字符串复制到目标字符数组。 

      5、replace():用于在字符串中用一些字符替换另一些字符。

      6、toUpperCase():把字符串转换成大写。

      7、toLowerCase():把字符串转换成小写。

      8、trim():获得对象的字段的值,然后转成string类型,并且去掉前后空白。

      9、toCharArray():将一个字符串内容转换为字符数组

          10、subString():提取字符串

           11、concat():字符串连接

      12、String.valueOf():将其他类型的数据转为字符串

      13、对于古罗马皇帝凯撒的加密军事情报解答:先定义字符串,之后输入字符串,算出字符串的长度,用for循环进行字符串的加密,运用ASCLL码表,进行加密,如果是xyz就减23,XYZ同理,其余的就正常加3,最后将加密的字符加到一个空的String类型的成员上,最后输出结果即可。

    4.

    解答:

    源代码如下:


    public class Four{
    public static void main( String args[] )
    {
    MyCounter coun1=new MyCounter();
    MyCounter coun2=new MyCounter();
    coun1.set(1);
    coun2=coun1.increase(100).decrease(2).increase(3);
    System.out.println(coun2.data);
    }
    }
    class MyCounter
    {
    public int data;
    public void set(int x)
    {
    data=x;//设置函数
    }
    public MyCounter increase(int i)//类类型
    {
    MyCounter a=new MyCounter();
    a.data=data+i;
    return a;//加
    }
    public MyCounter decrease(int d)
    {
    MyCounter a=new MyCounter();
    a.data=data-d;
    return a;//减
    }
    }

    运行结果:

     

  • 相关阅读:
    正则判断是否为纯数值
    前后端加密解密crypto.js
    小程序使用iconfont字体图标
    LeetCode-Combination Sum II
    LeetCode-Combination Sum
    Google 2013 campus test-R1
    Google Codejam
    LeetCode-Count and Say
    LeetCode-Binary Tree Level Order Traversal II
    LeetCode-Binary Tree Level Order Traversal
  • 原文地址:https://www.cnblogs.com/mm20/p/7726299.html
Copyright © 2020-2023  润新知