Java常用类:String类

Java常用类:String类



String

  • 字符串是常量,创建之后不可改变

  • 字符串字面值存储在字符串池中,可以共享

  • String s = "Hello";产生一个对象,字符串池中储存

  • String s = new String("Hello");产生两个对象,堆和字符串池中各存储一个

  • 示例

    public class Demo01 {
    
        public static void main(String[] args) {
    
            String name = "Hello";//"Hello"常量存储在字符串池中
            //"Dt"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟一个空间
            //name常量指向"Hello"变成指向"Dt"
            name = "Dt";
            String name1 = "Dt";//在字符串池中寻找"Dt",存在就直接使用,不存在就开辟一个空间来存储
    
            //字符串的另一种创建方式:new String();
            String str = new String("ab");//产生两个对象,堆和字符串池中各存储一个,堆里的对象指向字符串池的对象
            String str2 = new String("ab");
            System.out.println(str == str2);//false
            System.out.println(str.equals(str2));//true
            //字符串比较用equals()而不是==,==是比较字符串的地址
    
        }
    
    }
    

String类常用方法

  • public int length();返回字符串的长度
  • public char charAt(int index);根据下标获取字符
  • public boolean contains(String str);判断当前字符中是否含str
  • public char[] toCharArray();将字符串转换成数组
  • public int indexOf(String str);寻找 str 在当前字符串首次出现的下标,存在,则返回下标;不存在,则返回-1
  • public int lastIndexOf(String str);寻找 str 在当前字符串中最后一次出现的下标索引
  • public String trim();去掉字符串前后的空格
  • public String toUpperCase();将小写转换成大写
  • public String toLowerCase();将大写转换成小写
  • public boolean starWith(String str);判断字符串是否以 str 开头
  • public boolean endWith(String str);判断字符串是否以 str 结尾
  • public String replace(char oldChar,char newChar);将旧字符替换成新字符
  • public String[] split(String str);根据 str 做拆分,拆分成数组
  • public boolean equals(Object anObject);将此字符串与指定的对象比较
  • public boolean equalsIgnoreCase(String anotherString);将此 String 与另一个 String 比较,不考虑大小写
  • public int compareTo(String anotherString);按字典顺序比较两个字符串
  • publicint compareToIgnoreCase(String str); 按字典顺序比较两个字符串,不考虑大小写
  • public String substring(int beginIndex);截取指定位置的字符串

示例:

import java.util.Arrays;

public class Demo02 {
    public static void main(String[] args) {

        System.out.println("===========1============");

        //字符串方法的使用
        //length();返回字符串的长度
        //charAt(int index);返回指定位置的字符
        //contains(String str);判断是否包含某个子字符串

        String text = "Java永远滴神";
        System.out.println(text.length());//返回text字符串长度
        System.out.println(text.charAt(7));//返回下标位置为7的字符
        System.out.println(text.contains("Java"));//判断text字符串是否包含"Java"
        System.out.println(text.contains("C++"));//判断text字符串是否包含"C++"

        System.out.println("===========2============");

        //toCharArray();返回字符串对应的数组
        //indexOf(String str);返回str在字符串首次出现的位置
        //lastIndexOf(String str);返回str在字符串最后出现的位置

        System.out.println(Arrays.toString(text.toCharArray()));//Arrays.toString();是数组的打印方法
        System.out.println(text.indexOf("a"));//寻找字符串"a"在当前字符串首次出现的位置
        System.out.println(text.indexOf("a",2));//寻找字符串"a"在当前字符串的下标为2开始首次出现的位置
        System.out.println(text.lastIndexOf("a"));//寻找字符串"a"在当前字符串最后出现的位置

        System.out.println("===========3============");

        //trim();去掉字符串前后的空格
        //toUpperCase();把小写转换成大写
        //toLowerCase();把大写转换成小写
        //starWith(String str);判断字符串是否以str开头
        //endWith(String str);判断字符串是否以str结尾

        String text1 = "  Hello  World  ";
        System.out.println(text1.trim());//去掉字符串前后的空格
        System.out.println(text1.toUpperCase());//把text1的小写转换成大写
        System.out.println(text1.toLowerCase());//把text1的大写转换成小写
        System.out.println(text.startsWith("Java"));//判断text字符串是否以"Java"开头
        System.out.println(text.endsWith("永远滴神"));//判断text字符串是否以"永远滴神"结尾

        System.out.println("===========4============");

        //replace(char oldChar,char newChar);用新的字符或字符串来替换旧的字符或字符串
        //split(String str);根据str对当前字符串进行拆分成数组

        System.out.println(text1.replace("World","Java World"));//将text1中的"World"替换成"Java Word"
        System.out.println(Arrays.toString(text.split("永远")));//根据"永远"将text拆分成数组

        //split();进阶
        String str = "Java is the best programing language,java    nice";
        System.out.println(Arrays.toString(str.split("[ ,]+")));
        //split("[ ,]+")的意思是根据" "或","来拆分成数组,+是指可以是多个" "或者",",该表示方式来自正则表达式


        System.out.println("===========5============");

        //equals();判断两个对象内容是否相同
        //equalsIgnoreCase();判断两个对象内容是否相同(忽略大小写)
        //compareTo();比较两个字符串的大小
        //compareToIgnoreCase();比较两个字符串的大小(忽略大小写)
        //substring(int beginIndex);从指定下标开始截取字符串

        String s1 = "hello";
        String s2 = "HELLO";
        System.out.println(s1.equals(s2));//比较s1和s2的内容
        System.out.println(s1.equalsIgnoreCase(s2));//忽略大小写的比较

        System.out.println(s1.compareTo(s2));//按大小比较s1,s2
        System.out.println(s1.compareToIgnoreCase(s2));//忽略大小写的比较

        String s3 = "helloworld";//s1和s3前面一样,s3比s1多了"world"
        System.out.println(s1.compareTo(s3));//这时候compareTo();方法比的是长度
        String s4 = "HELLOWORLD";
        System.out.println(s1.compareToIgnoreCase(s4));////这时候compareToIgnoreCase();方法比的也是长度

        System.out.println(s1.substring(1));//从下标为1开始截取字符串
        System.out.println(s1.substring(1,3));//截取下标为1到下标为3的字符串
    }
}

输出

===========1============
8
神
true
false
===========2============
[J, a, v, a, 永, 远, 滴, 神]
1
3
3
===========3============
Hello  World
  HELLO  WORLD  
  hello  world  
true
true
===========4============
  Hello  Java World  
[Java, 滴神]
[Java, is, the, best, programing, language, java, nice]
===========5============
false
true
32
0
-5
-5
ello
el

案例演示

  • 已知String str = "this is a text";

    • 需求:
      • 将 str 中的单词单独获取出来
      • 将 str 中的 text 替换为 practice
      • 在 text 前面插入一个 easy
      • 将每个单词的首字母改为大写
  • 示例:

    import java.util.Arrays;
    
    public class Demo03 {
    
        public static void main(String[] args) {
    
            String str = "this is a text";
            String[] array = str.split(" ");//以空格分割成数组
    
            System.out.println(Arrays.toString(array));
    
            String str1 = str.replace("text","practice");//"text"替换成"practice"
            System.out.println(str1);
    
            String str2 = str.replace("text","easy text");//"text"前面加上"easy"
            System.out.println(str2);
    
            for (int i = 0; i < array.length; i++) {
                //charAt(0);获取首字母,然后通过Character.toUpperCase();把字母变成大写
                char upperfrist = Character.toUpperCase(array[i].charAt(0));
                //再用substring();方法截取字符串和大写首字母拼接
                array[i] = upperfrist+array[i].substring(1);
            }
            System.out.println(Arrays.toString(array));
            
        }
    
    }
    

    输出

    [this, is, a, text]
    this is a practice
    this is a easy text
    [This, Is, A, Text]
    
posted @ 2021-04-15 22:52  D..T  阅读(70)  评论(0编辑  收藏  举报