String类

107 阅读2分钟
  1. 字符串是常量,创建之后不可改变
  2. 字符串字面值存储在字符串池中,可以共享
package com.Class.StringClass;

public class overview {

    public static void main(String[] args) {

        String str = "name";//"name"存储在字符串池中
        str = "age";//"name"还在字符串池中,同时,在字符串中也加入了"age",并且此时的str指向了"age","Hello"变成了垃圾
        String str1 = "age";//创建str1后,先在字符串池中找"age",发现有,直接指向它,从而实现了常量的共享

        Integer integer1 = str.hashCode();
        Integer integer2 = str1.hashCode();
        System.out.println(integer1);
        System.out.println(integer2);


        System.out.println(str==str1);
        System.out.println(str.equals(str1));


        String s = new String("Hello");//产生两个对象  在堆和池中各有一个 "Hello"
        String s1 = new String("Hello");

        // ==比较的是地址  equals比较的是值
        System.out.println(s==s1);
        System.out.println(s.equals(s1));

    }

}

输出结果:

常用方法

  1. length();返回字符串的长度
  2. charAt(int index);返回某个位置的字符
  3. contains(String str);判断是否包含某个子字符串
  4. toCharArray();返回字符串对应的数组
  5. indexOf();返回子字符串首次出现的位置
  6. lastIndexOf();返回字符串最后一次出现的位置
  7. trim(); //去掉字符串前后空格
  8. toUpperCase(); toLowerCase(); 转换大小写
  9. endWith(str); startWith(str); 判断是否以str 结尾、开头
  10. replace(char old, char new); 用新的字符或字符串替换旧的字符或字符串
  11. split(); 对字符串拆分
package com.Class.StringClass;

import java.util.Arrays;

public class commonMethod {

    public static void main(String[] args) {
        //字符串方法的使用
        //1.length();返回字符串的长度
        //2.charAt(int index);返回某个位置的字符
        //3.contains(String str);判断是否包含某个子字符串
        String str = "java is the best language,java is so good";
        System.out.println(str.length());
        System.out.println(str.charAt(3));
        System.out.println(str.contains("java"));
        System.out.println(str.contains("php"));

        //4.toCharArray();返回字符串对应的数组
        //5.indexOf();返回子字符串首次出现的位置
        //6.lastIndexOf();返回字符串最后一次出现的位置
        System.out.println(str.toCharArray());//java is the best language
        System.out.println(Arrays.toString(str.toCharArray()));
        System.out.println(str.indexOf("is"));
        System.out.println(str.indexOf("is", 4)); // 从索引4开始找 
        System.out.println(str.lastIndexOf("is"));

        // 7. trim(); //去掉字符串前后空格
        // 8. toUpperCase(); toLowerCase(); 转换大小写
        // 9. endWith(str); startWith(str);  判断是否以str 结尾、开头
        String ct = " Hello World ";
        System.out.println(ct.trim());
        System.out.println(ct.toUpperCase());
        System.out.println(ct.toLowerCase());
        System.out.println(ct.endsWith("World"));
        System.out.println(ct.startsWith("Hello"));

        // 10. replace(char old, char new); 用新的字符或字符串替换旧的字符或字符串
        // 11. split(); 对字符串拆分
        System.out.println(str.replace("java", "php")); // php是最好的语言, php no1
        String say = "java is the best language";
        String[] arr = say.split(" ");
        //使用split方法时,如果有空格和逗号 -->  String[] arr = say.split("[ ,]");
        //使用split方法时,如果有多个空格和逗号 -->  String[] arr = say.split("[ ,]+");
        System.out.println(arr.length);
        for(String string : arr){
            System.out.println(string);
        }


        // 补充两个equals/compareTo();比较大小
        String s1 = "hello";
        String s2 = "HELLO";
        System.out.println(s1.equalsIgnoreCase(s2));// 忽略大小写比较  true 

        // compareTo(); 两字符不同时比较字符字典序的ascii码
        // 字符相同时比较长度 返回差值
        System.out.println(s1.compareTo(s2));//32
    }

}

输出结果: