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
内的指数,与index
codePointOffset
代码点。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)是由一系列具有相同类型或不 ...
随机推荐
- 用java访问Oracle数据库、取得记录并输出到界面
Class.forName(“oracle.jdbc.driver.OracleDriver”);Connection conn=DriverManager.getConnection( url , ...
- jquery操作select(选中,取值)
最近工作中总出现select 和 option问题,整理一下,内容大部分源于网络资料 一.基础取值问题 例如<select class="selector"></ ...
- Linux 新手入门常用命令
1,增加用户:useradd mylinux passwd mylinux 添加你的用户密码 2,切换用户: su otheruser (注意这种切换方式只是临时的,本质工作目录还在原来的用户目录 ...
- QT5.9 新特性与版本回顾
原文链接: http://blog.qt.io/blog/2017/05/31/qt-5-9-released 翻译内容如下,采用的是第三方某在线翻译软件,所以有些地方不是太精确,纵然大吉做了一定的调 ...
- 微服务实战(三):以MySQL为例,从原理上理解那些所谓的数据库军规
原文链接:微服务化的数据库设计与读写分离(来源:刘超的通俗云计算) 数据库永远是应用最关键的一环,同时越到高并发阶段,数据库往往成为瓶颈,如果数据库表和索引不在一开始就进行良好的设计,则后期数据库横向 ...
- 131.006 Unsupervised Learning - Feature Scaling | 非监督学习 - 特征缩放
@(131 - Machine Learning | 机器学习) 1 Feature Scaling transforms features to have range [0,1] according ...
- Java Web开发中的转发和重定向的问题
Java Web的页面实现跳转有两种方式,一种是转发,另外一种是重定向.一般来说,转发比重定向快.重定向会经过客户端,转发却不会. 转发 request.getRequestDispatcher(&q ...
- 从零开始——JSON ARRAY&JSON OBJECT
在学习“基于角色的权限”的例子中,遇到了json object和json array,因此在一番学习之后对此要点进行粗略整理. 参考: https://my.oschina.net/u/2601842 ...
- Linux yum提示Loaded plugins错误的解决方法
yum是Linux软件包管理器,也叫yum源,在yum使用过程中,有时会出现Loaded plugins错误,重启无效,遇到这种情况该如何解决呢?下面就给大家介绍下Linux yum提示Loaded ...
- XtraBackup出现 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
解决办法1.建立一个软连接 ln -s /dat/data/mysql/mysql.sock /var/run/mysqld/mysqld.sock 解决办法2:指定--host=127.0.0.1