Java-字符串常用方法示例

下面整理了JavaSE部分字符串的一些常用的方法:
字符串是一个引用类型,字符串是不可变对象,一旦创建赋值,它的值就不能载发生变化,这些方法不修改原来的字符串,只是生成了一个新的字符串。如果需要改变字符串的话,可以使用StringBuilder或者是StringBuffer,它里面也有一些方法供我们使用,以及String和StringBuilder如何互相转化。下面代码演示:

public class Main {
    public static void main(String[] args) {
        //创建字符串常量,字符串是不可变对象,一旦赋值就不能再改变
        //String提供的操作字符串的方法只是进行了拷贝
        //对原来的字符串内容是不会产生影响的
        //1、intern()方法:在常见字符串常量时,先会去字符串常量池中寻找,看看当前这个字符串是否在池中存在
        //                存在的话,就会舍弃当前对象,直接获取到池中的对应对象的引用
        //                不存在的话,就把这个字符串入池
        String str1="hehe";
        String str2=new String("hehe").intern();
        String str3="HEHE";
        System.out.println(str1==str2);//true说明str1和str2这两个引用,指向的是同一个对象
        //2、将字符串转化为字符数组
        char[] charArray=str1.toCharArray();
        //3、将字符串转化为字节数组
        byte[] bytes=str1.getBytes();
        //获取某个下标所对应的字符
        char c=str1.charAt(0);
        //获取字符串的长度
        int length=str1.length();
        //字符串查找(某个字符串中是否包含参数字符串)
        boolean isContain=str1.contains("he");
        //字符串比较是否相等
        //不忽略大小写
        System.out.println(str1.equals(str3));
        //忽略大小写
        System.out.println(str1.equalsIgnoreCase(str3));
        //字符串比较大小
        //str1>str2  返回大于0的整数
        //str1<str2  返回小于0的整数
        //str1==str2 返回0
        System.out.println(str1.compareTo(str3));
        //查找子字符串,从左向右
        //             1、判断是否包含子字符串
        //             2、返回子串所在的下标位置(开始位置)
        //             如果包含多组子串,返回最左侧子串的下标
        int index=str1.indexOf("he");
        //从右向左
        int index1=str1.lastIndexOf("he");
        //是否以指定字串开头
        boolean b1=str1.startsWith("h");
        //是否以指定字串结尾
        boolean b2=str1.startsWith("e");
        //字符串替换(不修改原来的字符串,生成一个新的子字符串)
        str1.replace("he","ha");
        //字符串拆分,例子是以空格分
        String str4="I love you";
        String[] strings=str1.split(" ");
        //字符串截取(从指定索引开始到末尾)
        String str5=str1.substring(1);
        //从beginIndex到endIndex,左闭右开区间
        String str6=str1.substring(0,2);
        //去掉字符串左右空格g
        String str7=" hello ";
        System.out.println(str7.trim());
        //大小写转化
        //小写转大写
        System.out.println(str1.toUpperCase());
        //大写转小写
        System.out.println(str3.toLowerCase());
        //判断当前字符串是否为空
        System.out.println(str1.isEmpty());
    }
}

public class Main1 {
    public static void main(String[] args) {
        //StringBuilder和StringBuffer的区别:
        //    StringBuilder线程不安全
        //    StringBuffer线程安全(通过加锁的方式来保证线程安全)
        StringBuilder str=new StringBuilder("hehe");
        StringBuffer str1=new StringBuffer("haha");
        //在字符串后追加字符串
        System.out.println(str.append("haha"));
        //反转字符串
        System.out.println(str.reverse());
        //删除字符串中的指定范围(前闭后开)
        System.out.println(str.delete(0, 2));
        //在offset后插入指定的数据(这个数据可以是各种数据类型)
        System.out.println(str.insert(0, 2));
        System.out.println(str.insert(1, "heihei"));
        System.out.println(str.insert(2, true));
        System.out.println(str.insert(3, 's'));

    }
}

互转:

//将String转成StringBuilder
        String str2="hello";
        StringBuilder sb=new StringBuilder(str2);
        System.out.println(sb);
        sb.append("world");
        //将StringBuilder转成String
        String str3=sb.toString();
        System.out.println(str3);

猜你喜欢

转载自blog.csdn.net/Subuprogrammer/article/details/107738310