zoukankan      html  css  js  c++  java
  • Java第四章课后整理

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

    在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象。 编译器在编译s2一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“Hello”)。这种优化工作由Java编译器自动完成。 当直接使用new关键字创建字符串对象时,虽然值一致(都是“Hello”),但仍然是两个独立的对象。

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

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

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

    代码中的“ab”字符串是一个常量,它所引用的字符串与s1所引用的“ab”对象无关。 但是若"s1="ab"",再判断“s1=="ab"",结果为true。

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

    3.请查看String.equals()方法的实现代码,注意学习其实现方法。

    publicclass StringEquals { publicstaticvoid main(String[] args) { String s1=new String("Hello"); String s2=new String("Hello"); System.out.println(s1==s2); System.out.println(s1.equals(s2)); String s3="Hello"; String s4="Hello"; System.out.println(s3==s4); System.out.println(s3.equals(s4)); } }

    equals()或equalsIgnoreCase()方法比较两字串内容是否相同,使用==比较两字串变量是否引用同一字串对象;
    compareTo:使用字典法进行比较,返回0表两字串相等,小于返回负值,大于返回正值;
    regionMatches:比较两字串中的某一部分是否相等。

    4.Length():获取字串长度

           1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.
           2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.
           3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!

    charAt():获取指定位置的字符

    str.charAt() :方法返回指定索引处的char值。索引范围是从0到length() - 1。对于数组索引,序列的第一个char值是在索引为0,索引1,依此类推。

    getChars():获取从指定位置起的子串复制到字符数组中。

    str.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

    要复制的第一个字符在索引srcBegin处,被复制的最后一个字符是在的索引srcEnd1即要复制的字符总数是srcEnd srcBegin处。

    字符被复制到子数组的夏令时开始在指数dstBegin和结束于索引:dstbegin + (srcEnd-srcBegin) - 1

    replace():子串替换

    str.replace(char oldChar,char newChar)返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar而生成的。

    toUpperCase()、 toLowerCase():大小写转换

    str.toUpperCase/()str.toLowerCase(),将所有的字符在这个字符串为大写。

    trim():去除头尾空格:

    str.trim(),该方法返回一个该字符串的副本,但将该字符串的开头和结尾的白色空格去掉;如果这个字符串头尾没有空白,将返回一个字符串的副本。

    toCharArray():将字符串对象转换为字符数组

    str.toCharArray()   返回一个新分配的字符数组,它的长度是此字符串的长度,而且内容被初始化为包含此字符串表示的字符序列。

     

     

  • 相关阅读:
    luogu P1833 樱花 看成混合背包
    luogu P1077 摆花 基础记数dp
    luogu P1095 守望者的逃离 经典dp
    Even Subset Sum Problem CodeForces
    Maximum White Subtree CodeForces
    Sleeping Schedule CodeForces
    Bombs CodeForces
    病毒侵袭持续中 HDU
    病毒侵袭 HDU
    Educational Codeforces Round 35 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/as1165/p/7744104.html
Copyright © 2011-2022 走看看