String、StringBuffer、StringBuilde

2020-08-25  本文已影响0人  有腹肌的豌豆Z

一、Java String 类——String字符串常量

简介

    public final class String implements java.io.Serializable, Comparable<String>, CharSequence {
   
   /** 
    *The value is used for character storage. 
    */
    private final char value[];
String 对象的两种创建方式。
String str1="abcd";
String str2=new String("abcd");
System.out.println(str1==str2);// false
String pool ,String 类型的常量池比较特殊。
String s1 = new String("计算机");
String s2 = s1.intern();
String s3 = "计算机";
System.out.println(s2); // 计算机
System.out.println(s1==s2); // false 因为一个是堆内存中的String对象,一个是常量池中的String对象。
System.out.println(s2==s3);// true 应为两个都是常量池中的对象。
String 字符串拼接
String str1 = "str";
String str2 = "ing";

String str3 = "str"+"ing"; // 常量池中的对象
String str4 = str1+str2; // 在堆上创建的新的对象 
String str5 = "string"; // 在常量池中的对象 

System.out.println(str3==str4); // false
System.out.println(str3==str5); // true
System.out.println(str4==str5); // false
String s1 = new String("abc"); // 这句话创建了几个对象 ?
String.format()占位符替换
String常用函数
//判断字符串是否为空
public boolean isEmpty()

//获取字符串长度
public int length()

//取子字符串  截取
public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)

//在字符串中查找字符或子字符串,返回第一个找到的索引位置,没找到返回-1
public int indexOf(int ch)
public int indexOf(String str)

//从后面查找字符或子字符串,返回从后面数的第一个索引位置,没找到返回-1
public int lastIndexOf(int ch)
public int lastIndexOf(String str)

//判断字符串中是否包含指定的字符序列。回顾一下,CharSequence是一个接口,String也实现了CharSequence
public boolean contains(CharSequence s)
//判断字符串是否以给定子字符串开头
public boolean startsWith(String prefix)

//判断字符串是否以给定子字符串结尾
public boolean endsWith(String suffix)

//与其他字符串比较,看内容是否相同
public boolean equals(Object anObject)

//忽略大小写,与其他字符串进行比较,看内容是否相同
public boolean equalsIgnoreCase(String anotherString)

//String也实现了Comparable接口,可以比较字符串大小
public int compareTo(String anotherString)

//还可以忽略大小写,进行大小比较
public int compareToIgnoreCase(String str)

//所有字符转换为大写字符,返回新字符串,原字符串不变
public String toUpperCase()

//所有字符转换为小写字符,返回新字符串,原字符串不变
public String toLowerCase()

//字符串连接,返回当前字符串和参数字符串合并后的字符串,原字符串不变
public String concat(String str)

//字符串替换,替换单个字符,返回新字符串,原字符串不变
public String replace(char oldChar, char newChar)

//字符串替换,替换字符序列,返回新字符串,原字符串不变
public String replace(CharSequence target, CharSequence replacement)

//删掉开头和结尾的空格,返回新字符串,原字符串不变
public String trim()

//分隔字符串,返回分隔后的子字符串数组,原字符串不变
public String[] split(String regex)
        //例如,按逗号分隔"hello,world":
        String str = "hello,world";
                String[] arr = str.split(","); //arr[0]为"hello", arr[1]为"world"。

二、StringBuffer

三、StringBuilder

四、StringBuffer与StringBuilder的线程安全性问题

上一篇 下一篇

猜你喜欢

热点阅读