zoukankan      html  css  js  c++  java
  • Java进阶01 String类(转载)

    String类包含在java.lang包中。这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class)。我们不需要显式的使用import引入String类。

    创建字符串

    我们之前使用类来创建对象。需要注意的时候,创建String类对象不需要new关键字。比如:

    public class Test{
      public static void main(String[] args){
        String s = "Hello World!";
        System.out.println(s);
      }
    }

    实际上,当你写出一个"Hello World"表达式时,内存中就已经创建了该对象。如果使用new String("Hello World!"),会重复创建出一个字符串对象。

    String类是唯一一个不需要new关键字来创建对象的类。使用的时候需要注意。

    字符串操作

    可以用+实现字符串的连接(concatenate),比如:

    "abc" + s

    字符串的操作大都通过字符串的相应方法实现,比如下面的方法:

    方法                               效果

    s.length()                        返回s字符串长度

    s.charAt(2)                       返回s字符串中下标为2的字符

    s.substring(0, 4)                 返回s字符串中下标0到4的子字符串

    s.indexOf("Hello")                返回子字符串"Hello"的下标

    s.startsWith(" ")                 判断s是否以空格开始

    s.endsWith("oo")                  判断s是否以"oo"结束

    s.equals("Good World!")           判断s是否等于"Good World!"

                                      ==只能判断字符串是否保存在同一位置。需要使用equals()判断字符串的内容是否相同。

    s.compareTo("Hello Nerd!")        比较s字符串与"Hello Nerd!"在词典中的顺序,

                                      返回一个整数,如果<0,说明s在"Hello Nerd!"之前;

                                                  如果>0,说明s在"Hello Nerd!"之后;

                                                  如果==0,说明s与"Hello Nerd!"相等。

    s.trim()                          去掉s前后的空格字符串,并返回新的字符串

    s.toUpperCase()                   将s转换为大写字母,并返回新的字符串

    s.toLowerCase()                   将s转换为小写,并返回新的字符串

    s.replace("World", "Universe")    将"World"替换为"Universe",并返回新的字符串

    不可变对象

    String类对象是不可变对象(immutable object)。程序员不能对已有的不可变对象进行修改。我们自己也可以创建不可变对象,只要在接口中不提供修改数据的方法就可以。

    然而,String类对象确实有编辑字符串的功能,比如replace()。这些编辑功能是通过创建一个新的对象来实现的,而不是对原有对象进行修改。比如:

    s = s.replace("World", "Universe");

    右边对s.replace()的调用将创建一个新的字符串"Hello Universe!",并返回该对象(的引用)。通过赋值,引用s将指向该新的字符串。如果没有其他引用指向原有字符串"Hello World!",原字符串对象将被垃圾回收。

    不可变对象

    Java API

    Java提供了许多功能强大的包。Java学习的一个重要方面是了解这些包以及其中包含的API(Application Programming Interface)。String类定义在java.lang.String。

  • 相关阅读:
    【BZOJ-3712】Fiolki LCA + 倍增 (idea题)
    【BZOJ-1941】Hide and Seek KD-Tree
    【BZOJ-2400】Spoj839Optimal Marks 最小割 + DFS
    【BZOJ-3709】Bohater 贪心
    【BZOJ-2342】双倍回文 Manacher + 并查集
    【BZOJ-3790】神奇项链 Manacher + 树状数组(奇葩) + DP
    【BZOJ-4568】幸运数字 树链剖分 + 线性基合并
    【BZOJ-4520】K远点对 KD-Tree + 堆
    【BZOJ-4127】Abs 树链剖分 + 线段树 (有趣的姿势)
    【BZOJ-2648&2716】SJY摆棋子&天使玩偶 KD Tree
  • 原文地址:https://www.cnblogs.com/airry66/p/3929733.html
Copyright © 2011-2022 走看看