java中String类中常用的方法(附带相关面试题)

目录

一.字符串的转化

 二.字符串的查找

三.字符串的替换

四.字符串的截取

五.字符串的拆分

六.字符串的比较

七.其他类


在java中String并不是基本数据类型,其本质是一个类

字符串在Java程序中占据着非常重要的地位,所以掌握其中相关方法也非常重要,并且在面试中也是其中的一个重点知识内容

以下是java中String常用的方法:

一.字符串的转化

常用方法:

转换方法描述
string.charAt(number)返回字符串中索引为number的字符。索引从0开始,所以number=0表示字符串的第一个字符。
char[] test = string.toCharArray()将字符串中的每个字符转换为字符数组,并将结果保存在test数组中。这样可以逐个访问和处理字符串中的字符。
byte[] test = string.getBytes()将字符串转换为字节数组。这在数据传输和网络通信中非常常见,因为字节流可以更有效地传输和处理数据。

案例代码:实现常用的String的转换方法 

package Example;

public class javaDemo {
    public static void main(String[] args) {
      String test = "ok,xdm,看我看我,我是个啥b";
      char a = test.charAt(5);
//      字符串中转化为字符
      System.out.println(a);

      char b[] = test.toCharArray();
//      字符串转化为数组
      for (int i= 0;i<b.length;i++){
          System.out.print(b[i]);
      }
        System.out.println("");
      byte  bbyte[] = test.getBytes();
      //      字符串转化为字节
      for (int i= 0;i<bbyte.length;i++){
          System.out.print(bbyte[i]);
        }
    }
}


 二.字符串的查找

常用方法:

方法描述返回值
string.indexOf(str)从左到右开始查找字符串中第一次出现str的位置。如果找到,返回字符所在的下标;如果没有找到,返回-1。找到:字符所在的下标;未找到:-1
string.lastIndexOf(str)从右到左开始查找字符串中最后一次出现str的位置。如果找到,返回字符所在的下标;如果没有找到,返回-1。找到:字符所在的下标;未找到:-1
string.contains(str)判断字符串中是否包含子字符串str。如果包含,返回true;如果不包含,返回false包含:true;不包含:false

案例代码:字符串的查找

package Example;

public class javaDemo {
    public static void main(String[] args) {
        String test = "ok,xdm,看我看我,我是个啥b";
        System.out.println(test.indexOf("啥a"));
        System.out.println(test.indexOf("啥b"));
        System.out.println(test.contains("啥b"));
        //查找字符串内是否有"啥b"
    }
}

  


三.字符串的替换

常用方法:

方法描述
string.replaceFirst(oldStr, newStr)替换字符串中第一个匹配到的oldStr子字符串为newStr子字符串。
string.replaceAll(oldStr, newStr)替换字符串中所有匹配到的oldStr子字符串为newStr子字符串。

 案例代码:

package Example;

public class javaDemo {
    public static void main(String[] args) {
        String test = "瑞克四代才是神";

       String test2 = test.replaceFirst("四","五");
        System.out.println(test2);
    }
}


四.字符串的截取

常用方法:

方法描述
string.substring(startIndex)从指定起始索引startIndex开始截取字符串,返回从该索引到字符串末尾的子字符串。
string.substring(startIndex, endIndex)从指定起始索引startIndex开始截取字符串,直到结束索引endIndex之前的位置,返回包含的子字符串。

案例代码: 提取跳过前两个字符的字符串

package Example;

public class javaDemo {
    public static void main(String[] args) {
        String test = "不要断章取义";
        System.out.println(test.substring(1));
    }
}

 


 五.字符串的拆分

常用方法:

方法描述
string.split(delimiter)将字符串按照指定的分隔符delimiter进行拆分,并返回一个字符串数组,其中包含被拆分后的子字符串。

案例代码:设置String数组接收一个字符串以空格为分隔符的字符串

package Example;

public class javaDemo {
    public static void main(String[] args) {
       String test = "房子,黑人,女朋友 归男,孩子";
       String badEnding[] = test.split(" ");
       for (int i=0; i<badEnding.length;i++){
           System.out.println(badEnding[i]);
       }
    }
}


六.字符串的比较

常用方法:

方法描述
string.equals(str)比较字符串与给定的str是否相等。返回true,如果字符串相等;返回false,如果字符串不相等。
string.equalsIgnoreCase(str)比较字符串与给定的str是否相等,不区分大小写。返回true,如果字符串相等;返回false,如果字符串不相等。

案例代码:

package Example;

public class javaDemo {
    public static void main(String[] args) {
     String test = "abcdefg";
        System.out.println(test.equals("ffffffff"));
        System.out.println(test.equals("abcdefg"));

        System.out.println(test.equalsIgnoreCase("ffffffff"));
        System.out.println(test.equalsIgnoreCase("ABCDEFG"));
    }
}

面试题:字符串之间 “==”与equals的方法的区别

1.对于基本类型,==比较的是值

2.对于引用类型,==比较的是地址

3.equals类型不能用于基本类型的比较

4.如果没有重写equals,equals就相当于 ==

5.如果重写了equals方法,equals比较的就是对象内容


 七.其他类

方法描述
toUpperCase()将字符串转换为大写字母形式。
toLowerCase()将字符串转换为小写字母形式。
length()返回字符串的长度,即包含的字符个数。
concat(str)将指定字符串 str 连接到原字符串的末尾。
trim()去除字符串两端的空白字符(包括空格、制表符、换行符等),返回新字符串。

字符串拼接concat()与“+”区别

主要区别如下:

  1. 返回值:concat()方法返回一个新的字符串对象,将当前字符串与指定字符串连接起来,而符号"+"直接在原有字符串上进行修改并返回结果。

  2. 内部实现:concat()方法使用了StringBuilder(在常用类库中)或StringBuffer来执行字符串的连接操作,而符号"+"使用StringBuilder在内部实现中完成字符串的拼接。

  3. 可读性:concat()方法的语法比较明确,可以清楚地表达出字符串的连接操作;而符号"+"的使用更为简便和直观,可以直接将两个字符串用"+"进行连接。


面试题:String类的常用方法有哪些?

equals、length、contains、replace、split、hashcode、indexof、substring、trim、toUpperCase、toLowerCase、isEmpty等等

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alphamilk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值