Java String类中的方法

本文详细介绍了Java中字符串的构造方法、对象比较、查找功能(charAt,indexOf,lastIndexOf),以及字符串转化(valueOf,parseInt,toUpperCase,toLowerCase,toCharArray)和替换(replace,replaceFirst,replaceAll)等操作。
摘要由CSDN通过智能技术生成

一、字符串构造

public static void main(String[] args) {
        //使用常量字符串构造
        String str = "abcd";
        //new String对象
        String str2 = new String("hello");
        //用字符数组来构造字符串
        char[] array = {'a','b','c','d'};
        String str3 = new String(array);
    }

注意:

1、String是引用类型,内部并不存储字符串本身

 2、字符串存储逻辑:

      (1)、先检查这个内存(字符串常量池)有没有这个字

      (2)、如果没有,存进去

        (3)、如果有,就不重复存储,取出现有的对象即可

3、str里会存放value、coder、hash、hashIsZero

4、value存的是ASCII码

5、双引号引起来的是常量值

6、字符串本身就是引用类型,可以直接“abc”.length

二、String对象比较

1、==比较是否引用同一个对象

public static void main(String[] args) {
        String str1 = "abcdef";
        String str2 = "abcdef";
        //对于引用类型,== 比较的是引用中的地址
        //规定只要是双引号引起来的字符串,会存在一个字符串常量池当中
        System.out.println(str1 == str2);//true 

        String str3 = new String("hello");
        String str4 = new String("hello");
        System.out.println(str3 == str4);//false
        //str3和str4是不一样的对象
        //真正想看一不一样用equals
        System.out.println(str1.equals(str2));
        System.out.println(str3.equals(str4));
    }
   

 2、boolean equals(Object anObject) 方法:按照字典序比较(字符大小的顺序

3、boolean equalsIgnoreCase(Object anObject)方法:忽略大小写比较

    public static void main(String[] args) {
        String str3 = new String("hello");
        String str4 = new String("Hello");
        System.out.println(str3.equals(str4));
        //忽略大小写
        System.out.println(str3.equalsIgnoreCase(str4));//忽略大小写进行比较,例如验证码
    }

4、int compareTo(String s) 方法: 按照字典序比较(字符大小的顺序

equals 不同的是, equals 返回的是 boolean 类型,而 compareTo 返回的是 int 类型。
具体比较方式:
(1)、  先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值
(2)、如果前 k 个字符相等 (k 为两个字符长度最小值 ) ,返回值两个字符串长度差值

 5、int compareToIgnoreCase(String str) 方法:与compareTo方式相同,但是忽略大小写比较

 public static void main(String[] args) {
        String str1 = "abcd";
        String str2 = "def";
        System.out.println(str1.compareTo(str2));
        System.out.println(str1.compareToIgnoreCase(str2));//忽略大小写进行比较

    }

三、字符串查找

charAt

indexOf

lastIndexOf

 public static void main(String[] args) {
        String str1 = "abcd";
        String str2 = "def";

        char ch = str1.charAt(1);
        System.out.println(ch);//获得字符串的第几个位置(从0开始)

        int index = str1.indexOf('d');//获得字符的位置
        System.out.println(index);

        int index2 = str1.indexOf('a',2);//从第几个位置开始找字符,重载
        System.out.println(index2);

        int index3 = str1.indexOf("bc");//返回要找字符串的第一个字符的下标
        System.out.println(index3);

        int index4 = str1.indexOf("bc",1);//从第几个位置开始找字符串,重载
        System.out.println(index4);

        String str3 = "abcdabcaabc";
        int index5 = str3.lastIndexOf('a',4);//从后往前找,返回找到的字符下标,从fromindex个下标从后往前找,字符串与上面的一样
        System.out.println(index5);

    }

 四、字符串的转化

valueOf

parseInt/parseDouble

toUpperCase

toLowerCase

toCharArray

format

public static void main(String[] args) {
        String s1 = String.valueOf(1234);
        String s2 = String.valueOf(12.34);
        String s3 = String.valueOf(true);//转成字符串

        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);

        int data1 = Integer.parseInt("1234");
        double data2 = Double.parseDouble("12.34");//将字符串转化成整型
        System.out.println(data1+1);
        System.out.println(data2+2);

        String str1 = "abcd";
        String str4 = str1.toUpperCase();//产生新的对象,小写转大写
        System.out.println(str4);

        String str2 = "ABCD";
        String str3 = str2.toLowerCase();//将大写转小写
        //修改不是在原字符串本身进行修改的,而是给到新的字符串
        System.out.println(str3);

        char[] array = str1.toCharArray();//把字符串转为数组
        System.out.println(Arrays.toString(array));

        String s = new String(array);//把数组转为字符串
        System.out.println(s);

        String s4 = String.format("%d-%d-%d",2024,3,13);//格式化
        System.out.println(s4);

    }

五、字符串的替换

replace

replaceFirst

replaceAll

public static void main(String[] args) {
        //字符串替换
        String str1 = "abcdc";
        String str2 = str1.replace('a','l');//字符整体替换
        System.out.println(str2);

        //字符串整体替换
        String ret2 = str1.replace("ab","kkk");
        System.out.println(ret2);

        String ret3 = str1.replaceFirst("ab","kkk");//替换第一个字符串
        System.out.println(ret3);

        String ret4 = str1.replaceAll("a","b");//字符串整体替换

    }

六、字符串的拆分

split

    public static void main(String[] args) {
        String str = "ab&cdf&hij";
        String[] strings = str.split("&");//分割字符串,再加上一个形参limit指的是最多分成几组
        //正则分割字符串
        //"|",".","*","+"都得加上转义字符"\\"
        //如果是\\,"\\\\",但实则\\是一个\
        //如果想一次分割完可以用"|",例如"ab=bc&wa"=>用"=|&"结果ab bc wa

        for (String s : strings){
            System.out.println(s);
        }

    }

多次拆分

public static void main(String[] args) {
        String str = "name=zhangsan&name=lisi";

        String[] strings = str.split("&");
        //strings2[0]:name=zhangsan   strings[1]=name=lisi
        for (String s : strings){
            System.out.println(s);
            String[] ss = s.split("=");
            for(String x : ss){
                System.out.println(x);
            }
        }
    }

七、字符串截取

substring

    public static void main(String[] args) {
        String str1 = "abcdef";
        //从指定下标 开始进行截取 截取位置左闭右开
        String str2 = str1.substring(1,3);//[1,3) bc
        System.out.println(str2);
    }

八、删除左右空格

trim

   public static void main(String[] args) {
        String str1 = "       abc  de  ";
        String str2 = str1.trim();//去掉字符串左右两边字符
        System.out.println(str2);
    }
  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值