Java截取字符串的几种方法示例

作者:程序员大腾 时间:2023-11-29 12:36:32 

0 写在前面

在实际工作中有一些地方需要用到截取字符串的方法,所以在此记录下截取字符串的几种方法。

  • .substring()

  • StringUtils.substring()

  • split()+正则表达式

1 .substring()

这个是比较常用的一个方法。

此方法有两种形式:

substring(int beginIndex); //提取从索引位置开始至结尾处的字符串部分
substring(int beginIndex,int endIndex); //提取beginIndex开始到endIndex的字符串部分

实例代码:

String str = "你好,Java练习生";
       //substring(int beginIndex);
       String substring1 = str.substring(3);

//substring(int beginIndex,int endIndex);
       String substring2 = str.substring(3, 7);

System.out.println(substring1);//Java练习生
       System.out.println(substring2);//Java

需要注意的是:计数从0开始,如果超过了字符串长度则会报错:

java.lang.StringIndexOutOfBoundsException: String index out of range:

计算位置示意图

Java截取字符串的几种方法示例

2 split()+正则表达式

不常用,不过在某些特定场合特别好用。

格式:字符串.split("指定分隔符");–返回的是一个数组

举例(以英文逗号为分隔符):

String str = "good,good,study,day,day,up";
       String[] split = str.split(",");

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

Java截取字符串的几种方法示例

3 StringUtils.substring()

需要在导入StringUtils的工具类。结合了很多方法。

因为每个人用的工具类不同所以只记录一种。

maven导入:

<dependency>
           <groupId>com.lispcast</groupId>
           <artifactId>org.apache.commons.lang</artifactId>
           <version>2.5.0</version>
       </dependency>
  • String substring(String str,int start):避免异常地从指定的String获取一个子字符串。

  • String substring(String str,int start, int end):可避免异常地从指定的String获取一个子字符串。

  • String substringAfter(String str,String separator):在第一次出现分隔符后获取子字符串。

  • String substringAfterLast(String str,String separator):在最后一次出现分隔符之后获取子字符串。

  • String substringBefore(String str,String separator):在第一次出现分隔符之前获取子字符串。

  • String substringBeforeLast(String str,String separator):在最后一次出现分隔符之前获取子字符串。

  • String substringBetween(String str,String tag):获取嵌套在同一String的两个实例之间的String。

  • String substringBetween(String str, String open, String close):获取嵌套在两个字符串之间的字符串。

测试:


       String str = "大家好,我是练习两年半的个人练习生,cxk";

//- String substring(String str,int start):避免异常地从指定的String获取一个子字符串。
       String substring1 = StringUtils.substring(str, 4);

//- String substring(String str,int start, int end):可避免异常地从指定的String获取一个子字符串。
       String substring2 = StringUtils.substring(str, 4, 7);

//- String substringAfter(String str,String separator):在第一次出现分隔符后获取子字符串。
       String substringAfter = StringUtils.substringAfter(str, ",");

//- String substringAfterLast(String str,String separator):在最后一次出现分隔符之后获取子字符串。
       String substringAfterLast = StringUtils.substringAfterLast(str, ",");

//- String substringBefore(String str,String separator):在第一次出现分隔符之前获取子字符串。
       String substringBefore = StringUtils.substringBefore(str, ",");

//- String substringBeforeLast(String str,String separator):在最后一次出现分隔符之前获取子字符串。
       String substringBeforeLast = StringUtils.substringBeforeLast(str, ",");

//- String substringBetween(String str,String tag):获取嵌套在同一String的两个实例之间的String。
       String substringBetween1 = StringUtils.substringBetween(str, ",");

// - String  substringBetween(String str, String open, String close):获取嵌套在两个字符串之间的字符串。
       String substringBetween2 = StringUtils.substringBetween(str, "好", "的");

System.out.println(substring1);
       System.out.println(substring2);
       System.out.println(substringAfter);
       System.out.println(substringAfterLast);
       System.out.println(substringBefore);
       System.out.println(substringBeforeLast);
       System.out.println(substringBetween1);
       System.out.println(substringBetween2);

Java截取字符串的几种方法示例

4 写在最后

注意:substring() 方法是按字符截取,而不是按字节截取。

工具类没什么神奇的,都是编写好的方法直接拿来用的,省事,也可以自行尝试编写工具类。

来源:https://blog.csdn.net/weixin_45909221/article/details/128305623

标签:java,截取,字符串
0
投稿

猜你喜欢

  • Java Arrays工具类用法详解

    2023-12-19 13:08:00
  • Android开发使用Drawable绘制圆角与圆形图案功能示例

    2023-08-26 21:07:09
  • Java基于Tcp的基础聊天功能实例

    2023-11-25 05:26:56
  • 解决Callable的对象中,用@Autowired注入别的对象失败问题

    2023-11-29 13:23:46
  • spring AOP的Around增强实现方法分析

    2021-10-03 06:22:39
  • JAVA代码实现MongoDB动态条件之分页查询

    2022-05-21 12:44:11
  • @valid 无法触发BindingResult的解决

    2023-08-10 09:16:12
  • SpringBoot2零基础到精通之数据与页面响应

    2022-08-25 22:26:41
  • java模拟实现斗地主发牌小程序

    2021-07-20 01:55:11
  • Android 蓝牙开发实例解析

    2021-06-04 03:34:37
  • Fastjson 常用API介绍及下载地址(推荐)

    2023-03-18 23:48:47
  • SpringBoot项目集成日志的实现方法

    2023-06-02 23:00:23
  • 单独编译Android 源代码中的模块实现方法

    2021-08-20 07:00:46
  • 详解基于java的Socket聊天程序——初始设计(附demo)

    2023-02-01 06:46:21
  • 如何通过指针突破C++类的访问权限

    2022-01-26 14:14:58
  • java多线程之CyclicBarrier的使用方法

    2023-11-04 21:52:54
  • 浅谈Java之终止继承:Final类和Fianl方法

    2023-02-14 00:07:08
  • 关于Android中点击通知栏的通知启动Activity问题解决

    2023-12-17 10:08:18
  • 浅谈java的接口和C++虚类的相同和不同之处

    2023-08-05 12:01:51
  • 详解IDEA多module项目maven依赖的一些说明

    2023-07-21 06:09:05
  • asp之家 软件编程 m.aspxhome.com