04_String类

一、String

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

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

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

String s = new String("Hello");产生两个对象,堆、池各存储一个。

二、常用方法

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);查找字符串在当前字符串中最后一次出现的下标索引。
public String trim();去掉字符串前后的空格。
public String toUpperCase();将小写转成大写。toLowerCase();将大写转成小写。
public boolean endsWith(String str);判断字符串是否以str结尾。
public String replace(char oldChar, char newChar);将旧字符串替换成新字符串。
public Sting[] split(String str);根据str做拆分。

三、StringBuffer和StringBuilder

public class demo03 {

    public static void main(String[] args) {
//        StringBuffer和StringBuilder一样
        StringBuffer sb = new StringBuffer();
        //append
        sb.append("java is nb");
        System.out.println(sb);

        //insert
        sb.insert(0, "hahahaha ");
        System.out.println(sb);	//hahahaha java is nb

        //replace
        sb.replace(0,3,"fffff");
        System.out.println(sb);	//fffffahaha java is nb

        //delete
        sb.delete(0,5);
        System.out.println(sb);	//ahaha java is nb
        sb.delete(0,sb.length());
        System.out.println(sb.length());	//0
    }

}

测试StringBuffer的效率比String高

public class demo04 {

    public static void main(String[] args) {
        long l = System.currentTimeMillis();
        
//        String s = "";
//        for (int i = 0; i < 99999; i++) {
//            s+=i;
//        }
//        System.out.println(s);
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < 99999; i++) {
            sb.append(i);
        }
        System.out.println(sb.toString());
        long l1 = System.currentTimeMillis();
        System.out.println(l1-l);
    }

}
posted @ 2024-07-26 18:07  美的梦里国  阅读(36)  评论(0)    收藏  举报