String类

133 阅读2分钟

概述

java.lang.String类代表字符串。Java程序中所有的字符串文字(例如"abc")都可以被看作是实现此类的实例。

String中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写小写的所有字符的字符串的副本。

特点

  • 字符串不变:字符串的值在创建后不能被更改。
String s1 = "abc"; 
s1 += "d"; 
System.out.println(s1); // "abcd" 
// 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。
  • 因为String对象是不可变的,所以它们可以被共享。
String s1 = "abc"; 
String s2 = "abc"; 
// 内存中只有一个"abc"对象被创建,同时被s1和s2共享。
  • "abc"等效于char[] data={ 'a' , 'b' , 'c' }
例如:
String str = "abc";

相当于:
char data[] = {'a', 'b', 'c'};
String str = new String(data); 
// String底层是靠字符数组实现的。

常用方法

获取方法

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

        // public int length():获取字符串的长度
        int length = "asdadbgawgfiasf".length();
        System.out.println(length);

        // public String concat(String str):将当前字符串和参数字符串拼接返回新的字符串
        String str1 = "Kevin";
        String str2 = " Debruyne";
        String name = str1.concat(str2);
        System.out.println(name);

        // public char charAt(int index):获取指定索引位置的单个字符
        char c = name.charAt(1);
        System.out.println(c);

        // public int indexOf(String str):查找参数字符串在本字符串当中首次出现的位置。若没有,返回-1
        int index = name.indexOf("De");
        System.out.println(index);

    }
}

截取相关方法

public class SubString {
    public static void main(String[] args) {
        // public String substring(int beginIndex):截取从参数位置一直到字符串末尾,返回新的字符串
        String str1 = "HelloWorld";
        String str2 = str1.substring(5);
        System.out.println(str1);
        System.out.println(str2);

        // public String substring(int beginIndex,int endIndex):截取从begin索引开始,一直到end索引结束中间的字符串
        String str = str1.substring(1,6);
        System.out.println(str);
    }
}

转换相关方法

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

        // public char[] toCharArray():将当前字符串转换成为字符数组并返回
        char[] chars = "Hello".toCharArray();
        System.out.println(chars[0]);
        System.out.println(chars.length);

        // public byte[] getBytes():将当前字符串转换成为字节数组并返回
        byte[] bytes = "Chandler".getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.println(bytes[i]);
        }

        // public String replace(CharSequence oldString,CharSequence newString)
        // 将所有出现的老字符串替换成为新的字符串
        String str1 = "How you doing?";
        String str2 = str1.replace("o", "*");
        System.out.println(str1); 
        System.out.println(str2);
    }
}

分割方法

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

        // public String[] split(String regex):按照参数规则,将字符串切割成为若干部分
        String str1 = "aaa,bbb,ccc";
        String[] array1 = str1.split(",");
        for (int i = 0; i < array1.length; i++) {
            System.out.println(array1[i]);
        }

        String str2 = "XXX.YYY.ZZZ";
        String[] array2 = str2.split("\\.");
        for (String s : array2) {
            System.out.println(s);
        }
    }
}

本文使用 mdnice 排版