2.1 String类的方法

equals(Object anObject)

  • 使用 == 作比较

基本类型:比较的是数据值是否相同
引用类型:比较的是地址值是否相同

  • 字符串是对象,若需比较值是否相同得使用String类里面的 equals(Object anObject) 方法。(使用如下2.2)

    length()

    返回字符串的长度 ```java public class Demo { public static void main(String[] args) {
    1. String str1 = "222" ;
    2. String str2 = "22ss2" ;
    3. String str3 = "33sadfaf3" ;
    4. System.out.println(str1.length()); //3
    5. System.out.println(str2.length()); //5
    6. System.out.println(str3.length()); //9
    } }
  1. <a name="eIctk"></a>
  2. #### charAt(int index)
  3. 输出字符串指定索引index对应的字符串
  4. ```java
  5. public class Demo {
  6. public static void main(String[] args) {
  7. String str1 = "123" ;
  8. String str2 = "22ss2" ;
  9. String str3 = "33sadfaf3" ;
  10. System.out.println(str1.charAt(0)); // 1
  11. System.out.println(str2.charAt(2)); // s
  12. System.out.println(str3.charAt(3)); // a
  13. }
  14. }

valueOf(int i) //有重载

  • 把int类型转为String ```java public class Demo {

    public static void main(String[] args) {

    1. int i = 100 ;
    2. String s = String.valueOf(i) ; //这是String里面的一个静态方法
    3. System.out.println(s);
    4. //把字符串解析为int类型
    5. String s1 = "666" ;
    6. int k = Integer.parseInt(s1) ; //Internet里面的静态方法 有重载

    } }

  1. <a name="QI7Ri"></a>
  2. ### 2.2 String对象的特点
  3. - 通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同。
  4. ```java
  5. public class Demo {
  6. public static void main(String[] args) {
  7. String str1 = new String("222");
  8. String str2 = new String("222") ;
  9. String str3 = new String("333") ;
  10. System.out.println(str1==str2); //false
  11. System.out.println(str1.equals(str2)); //true
  12. System.out.println(str1.equals(str3)); //false
  13. }
  14. }
  • 以 “” 方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并且在字符串池中维护。 ```java public class Demo { public static void main(String[] args) {

    1. String str1 = "222" ;
    2. String str2 = "222" ;
    3. String str3 = "333" ;
    4. System.out.println(str1==str2); //true
    5. System.out.println(str1.equals(str2)); //true
    6. System.out.println(str1==str3); //false
    7. System.out.println(str1.equals(str3)); //false

    } }

  1. <a name="zKEXm"></a>
  2. ### 2.3 StringBuilder概述
  3. - StringBuilder 是一个可变的字符串类,我们可以把它看成一个容器,这里的可变指的的是StringBuilder对象中的内容是可变的。
  4. - String:内容是不可变的; StringBuilder:内容是可变的。
  5. - 构造方法:
  6. public StringBuilder() :创建一个空白可变的字符串对象,不含任何内容。<br /> public StringBuilder(String str):根据str内容来创建可变字符串对象。
  7. <a name="JB8mR"></a>
  8. #### 2.3.1 内置方法
  9. - append(任意类型) :添加数据,返回对象本身
  10. - reverse() :返回相反的字符串序列
  11. ```java
  12. public class Demo {
  13. public static void main(String[] args) {
  14. StringBuilder str1 = new StringBuilder() ;
  15. str1.append(222) ;
  16. System.out.println(str1); //222
  17. StringBuilder str4 = new StringBuilder("helloWorld") ;
  18. str4.reverse() ;
  19. System.out.println(str4); //dlroWolleh
  20. }
  21. }

2.3.2 StringBuilder和String相互转换

  • 通过 toString() 就可以实现把StringBuilder转换为String
  • 通过带参构造方法就可以实现把String转换为StringBuilder ```java public class Demo { public static void main(String[] args) {

    1. StringBuilder str4 = new StringBuilder("helloWorld") ;
    2. System.out.println(str4 +" ---- "+str4.getClass());
    3. System.out.println(str4.toString()+" ---- "+str4.toString().getClass());

    } }

运行结果: helloWorld —— class java.lang.StringBuilder helloWorld —— class java.lang.String ```