Java中获取子字符串的几种方法示例
发布时间 - 2026-01-10 22:35:02 点击率:次首先假如有这样一串字符串:

String s = "共 100 页, 1 2 3 4...";
假如我想把"100"给取出来,该如何做?
方法一: 采用split的方式
System.out.println(s.split(" ")[1]);或者System.out.println(s.split("\\s")[1]);
假如空" "有多个时,可以这样:
System.out.println(s.split("\\s+")[1]);
注:split是支持正则的,\s在正则中表示空格,+在正则中表示至少1个,即1个或多个,所以\s+表示至少有一个空格
方法二: 采用indexOf的方式
int begin = s.indexOf(" ");
int end = s.indexOf(" ", begin+1);
System.out.println(s.substring(begin+1, end));
方法三: 正则
封装好的一个正则类:
public class RegExp {
public boolean match(String reg, String str) {
return Pattern.matches(reg, str);
}
public List<String> find(String reg, String str) {
Matcher matcher = Pattern.compile(reg).matcher(str);
List<String> list = new ArrayList<String>();
while (matcher.find()) {
list.add(matcher.group());
}
return list;
}
public String find(String reg, String str, int index) {
Matcher matcher = Pattern.compile(reg).matcher(str);
if (matcher.find()) {
return matcher.group(index);
}
return null;
}
public String findString(String reg, String str) {
String returnStr = null;
List<String> list = this.find(reg, str);
if (list.size() != 0)
returnStr = list.get(0);
return returnStr;
}
}
RegExp re = new RegExp();
System.out.println(re.findString("\\d+", s));
System.out.println(re.findString("(?<=共).*?\\d+", s).trim());
注:正则中\d表示数字,(?<=共)是一种预查模式
方法四: 采用replaceFirst的方式
System.out.println(s.replaceFirst(".*?(\\d+).*", "$1"));
replaceFirst也是支持正则的
注: ?在正则中表示最小匹配模式,$1表示第一个()表示式里面的内容。
总结
以上四种方法中,其中有三种都与正则有关系,所以,要想玩转字符串的操作,具备一定的正则表示式的能力还是很有必要的!
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools./regex/javascript
正则表达式在线生成工具:
http://tools./regex/create_reg
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# java获取子字符串
# java字符串查找子串
# java取子字符串
# Java动态规划之编辑距离问题示例代码
# Java动态规划之硬币找零问题实现代码
# Java矩阵连乘问题(动态规划)算法实例分析
# Java算法之最长公共子序列问题(LCS)实例分析
# Java最长公共子序列示例源码
# java实现求两个字符串最长公共子串的方法
# Java字符串中删除指定子字符串的方法简介
# Java的字符串中对子字符串的查找方法总结
# java查找字符串中的包含子字符串的个数实现代码
# java实现统计字符串中字符及子字符串个数的方法示例
# Java基于动态规划法实现求最长公共子序列及最长公共子字符串示例
# 多个
# 正则表达式
# 是一种
# 第一个
# 很有
# 要想
# 三种
# 这篇文章
# 想把
# 四种
# 玩转
# 则有
# 都与
# 如何做
# 装好
# 再为
# 有一个
# 测试工具
# 其中有
# 有疑问
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
利用vue写todolist单页应用
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
利用python获取某年中每个月的第一天和最后一天
高端网站建设与定制开发一站式解决方案 中企动力
PHP正则匹配日期和时间(时间戳转换)的实例代码
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
Laravel如何处理文件下载请求?(Response示例)
javascript基于原型链的继承及call和apply函数用法分析
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
Linux后台任务运行方法_nohup与&使用技巧【技巧】
网站制作软件免费下载安装,有哪些免费下载的软件网站?
canvas 画布在主流浏览器中的尺寸限制详细介绍
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Python3.6正式版新特性预览
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
如何用狗爹虚拟主机快速搭建网站?
微信推文制作网站有哪些,怎么做微信推文,急?
jQuery 常见小例汇总
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Laravel安装步骤详细教程_Laravel环境搭建指南
免费网站制作appp,免费制作app哪个平台好?
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Laravel如何实现一对一模型关联?(Eloquent示例)
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
phpredis提高消息队列的实时性方法(推荐)
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
如何用wdcp快速搭建高效网站?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
如何在腾讯云服务器快速搭建个人网站?
Laravel PHP版本要求一览_Laravel各版本环境要求对照
Android 常见的图片加载框架详细介绍
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
如何快速上传自定义模板至建站之星?
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
智能起名网站制作软件有哪些,制作logo的软件?
高性价比服务器租赁——企业级配置与24小时运维服务
php打包exe后无法访问网络共享_共享权限设置方法【教程】
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
如何在橙子建站上传落地页?操作指南详解
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
JS弹性运动实现方法分析

