Notes 20180312 : String第四讲_String上的操作
作为一个基本的工具类,同时又是使用频率很高的类,Java为其提供了丰富的方法支持。Java中的String类中包含了50多个方法。最令人惊讶的是绝大多数方法都很有用,下面我们根据功能来分类介绍一下:
1. 关于码点的方法
在昨天我们探讨了一下码点,其中也详细叙述了码点的方法,这里我就不再赘述,只追加出来:
- int
codePointAt(int index)返回指定索引处的字符(Unicode代码点)。IndexOutOfBoundsException - int
codePointBefore(int index)返回指定索引之前的字符(Unicode代码点)。IndexOutOfBoundsException - int
codePointCount(int beginIndex, int endIndex)返回此String指定文本范围内的Unicode代码点数。IndexOutOfBoundsException - int
offsetByCodePoints(int index, int codePointOffset)返回此String内的指数,与indexcodePointOffset代码点。IndexOutOfBoundsException
2. 字符串的长度
String中提供了两个方法用于获取长度,关于这两个方法,前面介绍码点时,也介绍过,不在详细说了;
- int
length()返回此字符串的长度(码点单元数量)。 - int
codePointCount(int beginIndex, int endIndex)返回此String指定文本范围内的Unicode代码点数。IndexOutOfBoundsException
3. 提高效率的一个方法String.intern()
是在不知道该怎么介绍该方法,所以取了这么个名字,该方法本人在另一篇文章中详细说过,参见之;
4. 根据给定条件查询字符串
Java中针对数组提供了两种查询方式,一种是根据已知的索引查询该位置的代码单元,一种是根据已知的字符查询索引位置,下面我们来看看:
4.1 根据字符查询索引
根据字符来查询对应索引,String提供了8个这样的方法,这8个方法不会出现索引越界的异常,查询不到会返回-1,这8个方法分为正向查找(indexOf)和反向查找(lastIndexOf);
- indexOf(int ch) 返回指定字符第一次出现的字符串内的索引。
- indexOf(int ch, int fromIndex) 返回指定字符第一次出现的字符串内的索引,以指定的索引开始搜索。
- indexOf(String str) 返回指定子字符串第一次出现的字符串内的索引。
- indexOf(String str, int fromIndex) 返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。
- lastIndexOf(int ch) 返回指定字符的最后一次出现的字符串中的索引。
- lastIndexOf(int ch, int fromIndex) 返回指定字符的最后一次出现的字符串中的索引,从指定的索引(包含)开始向后搜索。
- lastIndexOf(String str) 返回指定子字符串最后一次出现的字符串中的索引。
- lastIndexOf(String str, int fromIndex) 返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索。
/**
* 根据给定信息查询字符串
*/
@Test
public void fun3(){
String str1 = "归云一去无踪迹,何处是前期?";
String str2 = "123242543534121214";
System.out.println("字符一在字符串中的位置:"+str1.indexOf('一'));
System.out.println("字符何从索引2开始寻找,索引是:"+str1.indexOf('何', 2));
System.out.println("字符串何处的索引是:"+str1.indexOf("何处"));
System.out.println("字符串何处的索引从给定索引找是:"+str1.indexOf("何处", 3));
System.out.println("----"+str1.indexOf("何处", 9));//查找不到返回-1
System.out.println("字符1最后一次出现的位置是:"+str2.lastIndexOf('1'));
System.out.println("字符1从索引5开始反向寻找,最后一次出现的位置是:"+str2.lastIndexOf('2', 5));
System.out.println("字符串12出现的最后位置:"+str2.lastIndexOf("12"));
System.out.println("字符串12出现的最后位置,从给定的索引反向查询:"+str2.lastIndexOf("12", 15));
System.out.println("如果lastIndexOf的参数是空字符串,那么返回的结果和求字符串长度是一样的:"+str2.lastIndexOf(""));
System.out.println("字符串长度:"+str2.length());
System.out.println("如果查询的在字符串中没有出现:"+str1.indexOf('1'));
System.out.println("如果查询的在字符串中没有出现:"+str2.lastIndexOf(" "));
String str = "jojjjjj";
//查找指定字符在字符串中第一次出现的位置,若字符串中没有要查找的字符返回-1
System.out.println("j第一次出现的位置是:"+str.indexOf('。'));
//返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。若字符串中没有要查找的字符返回-1
System.out.println("o在脚标2后第一次出现的索引:"+str.indexOf('o', 2));
System.out.println(str2.lastIndexOf(100));//索引越界不会异常,会返回负值-1 字符串中凡是查询不到那么就返回-1
}

下面我们再看一个涉及到辅助字符的操作;
String str3 = "Notes 20180312 : String第四讲_String上的操作的更多相关文章
- 【数据库上】 第四讲 E-R模型基础知识
第四讲 E-R模型基础知识 一.数据库设计过程 数据库设计的关键阶段? 各个阶段设计的主要任务? 基础条件:清楚一个应用系统的功能需求与数据需求(直接与用户交互.数据流程图示例/UML类图等) 核心阶 ...
- 转:C#精髓 第四讲 GridView 72般绝技
说明:准备出一个系列,所谓精髓讲C#语言要点.这个系列没有先后顺序,不过尽量做到精.可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注. C#精髓 第四讲 GridView 72般绝技 作者 ...
- 《ArcGIS Engine+C#实例开发教程》第四讲 状态栏信息的添加与实现
原文:<ArcGIS Engine+C#实例开发教程>第四讲 状态栏信息的添加与实现 摘要:在上一讲中,我们完成了 MapControl 和PageLayoutControl两种视图的同步 ...
- 高翔《视觉SLAM十四讲》从理论到实践
目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...
- linux 学习3 第四讲 文件常用命令
好几天没有在网上总结了.我把ppt先誊写在本子上,这样听的时候记录就方便很多,添些东西就可以. 我想先看shell那部分,但是没有之前几章的准备,是没法跟着视频动手操作的.所以还是按部就班得学习. 虽 ...
- Stanford机器学习---第四讲. 神经网络的表示 Neural Networks representation
原文 http://blog.csdn.net/abcjennifer/article/details/7749309 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...
- 32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看)
32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看) 昨天,大家可能都看了代码了,不知道昨天有没有在汇编代码的基础上,实现注入计算器. 如果没有,今天则会讲解,不过建议 ...
- PE格式第四讲,数据目录表之导入表,以及IAT表
PE格式第四讲,数据目录表之导入表,以及IAT表 一丶IAT(地址表) 首先我们思考一个问题,程序加载的时候会调用API,比如我们以前写的标准PE 那么他到底是怎么去调用的? 他会Call 下边的Jm ...
- 逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式
逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式 一丶了解什么是结构体,以及计算结构体成员的对其值以及总大小(类也是这样算) 结构体的特性 1.结构体(struct)是由一系列具有相同类型或不 ...
随机推荐
- 【Codeforces】Helvetic Coding Contest 2017 online mirror比赛记
第一次打ACM赛制的团队赛,感觉还行: 好吧主要是切水题: 开场先挑着做五道EASY,他们分给我D题,woc什么玩意,还泊松分布,我连题都读不懂好吗! 果断弃掉了,换了M和J,然后切掉了,看N题: l ...
- EF Migrations
Enable-Migrations -EnableAutomaticMigrations dbcontent Add-Migration XXXXX Update-Database -Verbose ...
- 阿里,百度,腾讯招聘 Java 程序员的技术标准
阿里巴巴篇 扎实的计算机专业基础,包括算法和数据结构,操作系统,计算机网络,计算机体系结构,数据库等 具有扎实的Java编程基础,理解IO.多线程等基础框架 熟练使用Linux系统的常用命令及shel ...
- 实用爬虫-02-爬虫真正使用代理 ip
实用爬虫-02-爬虫真正使用代理 ip 因为这里呢,是实用爬虫,想要仔细学习一些基础的,可以去查看: Python 爬虫教程:https://www.cnblogs.com/xpwi/category ...
- 控制HTML页面内容不能选中的方法
方法有二 一: css 方法 user-seletct: none;-webkit-user-seletct: none;-moz-user-seletct: none;-ms-user-seletc ...
- weixin设置菜单
https://jingyan.baidu.com/article/925f8cb8dfcf11c0dce05661.html
- c# webservice中访问http和https的wsdl,生成的配置节点的不同之处
http: https:
- CSS3 transition介绍
transition从效果上看是一种平滑过渡的动画,本质上是在线性时间内将属性从开始值过渡到结束值.例如获得焦点,点击鼠标等动作导致CSS属性值的变化是瞬间完成的,感觉有点生硬.用transition ...
- Windows Server 2003 动态网站IIS设置(图)
一.安装IIS Windows Server 2003 虽说是服务器版本,但在默认情况下并没有安装IIS,要在本地浏览asp,PHP等动态网页,就必须安装IIS.在买系统盘的时候,请注意看一下 ...
- 入门级 - 码云(Gitee),GitHub 教程
这篇文章的目的是记录我的关于GitHub的内容,从注册.下载直到设置成功每一步都有解释,其中有一些截图或者代码来自于网络. GitHub和码云均基于Git,所以两者的操作方法基本一致,只需要学习其中一 ...