作为一个基本的工具类,同时又是使用频率很高的类,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);

  1.   indexOf(int ch)  返回指定字符第一次出现的字符串内的索引。
  2. indexOf(int ch, int fromIndex)  返回指定字符第一次出现的字符串内的索引,以指定的索引开始搜索。
  3. indexOf(String str)  返回指定子字符串第一次出现的字符串内的索引。
  4. indexOf(String str, int fromIndex)  返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。
  5. lastIndexOf(int ch)  返回指定字符的最后一次出现的字符串中的索引。
  6. lastIndexOf(int ch, int fromIndex)  返回指定字符的最后一次出现的字符串中的索引,从指定的索引(包含)开始向后搜索。
  7. lastIndexOf(String str)  返回指定子字符串最后一次出现的字符串中的索引。
  8. lastIndexOf(String str, int fromIndex)  返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索。
  1. /**
  2. * 根据给定信息查询字符串
  3. */
  4. @Test
  5. public void fun3(){
  6. String str1 = "归云一去无踪迹,何处是前期?";
  7. String str2 = "123242543534121214";
  8. System.out.println("字符一在字符串中的位置:"+str1.indexOf('一'));
  9. System.out.println("字符何从索引2开始寻找,索引是:"+str1.indexOf('何', 2));
  10. System.out.println("字符串何处的索引是:"+str1.indexOf("何处"));
  11. System.out.println("字符串何处的索引从给定索引找是:"+str1.indexOf("何处", 3));
  12. System.out.println("----"+str1.indexOf("何处", 9));//查找不到返回-1
  13. System.out.println("字符1最后一次出现的位置是:"+str2.lastIndexOf('1'));
  14. System.out.println("字符1从索引5开始反向寻找,最后一次出现的位置是:"+str2.lastIndexOf('2', 5));
  15. System.out.println("字符串12出现的最后位置:"+str2.lastIndexOf("12"));
  16. System.out.println("字符串12出现的最后位置,从给定的索引反向查询:"+str2.lastIndexOf("12", 15));
  17. System.out.println("如果lastIndexOf的参数是空字符串,那么返回的结果和求字符串长度是一样的:"+str2.lastIndexOf(""));
  18. System.out.println("字符串长度:"+str2.length());
  19. System.out.println("如果查询的在字符串中没有出现:"+str1.indexOf('1'));
  20. System.out.println("如果查询的在字符串中没有出现:"+str2.lastIndexOf(" "));
  21. String str = "jojjjjj";
  22. //查找指定字符在字符串中第一次出现的位置,若字符串中没有要查找的字符返回-1
  23. System.out.println("j第一次出现的位置是:"+str.indexOf('。'));
  24. //返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。若字符串中没有要查找的字符返回-1
  25. System.out.println("o在脚标2后第一次出现的索引:"+str.indexOf('o', 2));
  26. System.out.println(str2.lastIndexOf(100));//索引越界不会异常,会返回负值-1 字符串中凡是查询不到那么就返回-1
  27. }

  下面我们再看一个涉及到辅助字符的操作;

  1. String str3 = "
  2. Notes 20180312 : String第四讲_String上的操作的更多相关文章

      1. 【数据库上】 第四讲 E-R模型基础知识
      1. 第四讲 E-R模型基础知识 一.数据库设计过程 数据库设计的关键阶段? 各个阶段设计的主要任务? 基础条件:清楚一个应用系统的功能需求与数据需求(直接与用户交互.数据流程图示例/UML类图等) 核心阶 ...

      1. 转:C#精髓 第四讲 GridView 72般绝技
      1. 说明:准备出一个系列,所谓精髓讲C#语言要点.这个系列没有先后顺序,不过尽量做到精.可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注. C#精髓 第四讲 GridView 72般绝技 作者 ...

      1. 《ArcGIS Engine+C#实例开发教程》第四讲 状态栏信息的添加与实现
      1. 原文:<ArcGIS Engine+C#实例开发教程>第四讲 状态栏信息的添加与实现 摘要:在上一讲中,我们完成了 MapControl 和PageLayoutControl两种视图的同步 ...

      1. 高翔《视觉SLAM十四讲》从理论到实践
      1. 目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...

      1. linux 学习3 第四讲 文件常用命令
      1. 好几天没有在网上总结了.我把ppt先誊写在本子上,这样听的时候记录就方便很多,添些东西就可以. 我想先看shell那部分,但是没有之前几章的准备,是没法跟着视频动手操作的.所以还是按部就班得学习. 虽 ...

      1. Stanford机器学习---第四讲. 神经网络的表示 Neural Networks representation
      1. 原文 http://blog.csdn.net/abcjennifer/article/details/7749309 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

      1. 32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看)
      1. 32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看) 昨天,大家可能都看了代码了,不知道昨天有没有在汇编代码的基础上,实现注入计算器. 如果没有,今天则会讲解,不过建议 ...

      1. PE格式第四讲,数据目录表之导入表,以及IAT表
      1. PE格式第四讲,数据目录表之导入表,以及IAT表 一丶IAT(地址表) 首先我们思考一个问题,程序加载的时候会调用API,比如我们以前写的标准PE 那么他到底是怎么去调用的? 他会Call 下边的Jm ...

      1. 逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式
      1. 逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式 一丶了解什么是结构体,以及计算结构体成员的对其值以及总大小(类也是这样算) 结构体的特性 1.结构体(struct)是由一系列具有相同类型或不 ...

    1.  
    2. 随机推荐

        1. TopCoder14580: EllysRPS
        1. 题意 \(yyb\)要去与\(m\)\((m\le100)\)个人玩游戏 由于\(yyb\)忙着切大火题,他没有太多的精力浪费在游戏上 所以仁慈的\(yyb\)决定放\(m\)个人一条生路,不吊打他们 ...

        1. 鼠标事件-拖拽2(不能拖出指定对象的div)
        1. <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

        1. 使用js在HTML中自定义字符串格式化方法
        1. Python中支持字符串格式化,其基本形式如下: str = "I'm {name},{age} years old" print(str.format(name="te ...

        1. 理解android中ListFragment和Loader
        1. 一直以来不知Android中Loader怎么用,今天晚上特意花了时间来研究,算是基本上搞明白了,现在把相关的注释和代码发出来,以便笔记和给网友一个参考,错误之处还望大家给我留言,共同进步,这个例子采用 ...

        1. Java基础之JSONObject的使用
        1. private static JSONObject createJSONObject() { JSONObject jsonObject = new JSONObject(); jsonObject. ...

        1. oralce的判断语句
        1. 大家对 IF ELSE 语句应该都很熟悉吧,它是用来对过程进行控制的.在 SQL 的世界中 CASE 语句有类似的效果.下面简单的介绍 CASE 语句的用法. CASE 语句的形式 事实上,CASE ...

        1. 有关从经典部署模型迁移到 Azure Resource Manager 部署模型的常见问题
        1. 此迁移计划是否影响 Azure 虚拟机上运行的任何现有服务或应用程序? 不可以. VM(经典)是公开上市的完全受支持的服务. 你可以继续使用这些资源来拓展你在 Azure 上的足迹. 如果我近期不打算 ...

        1. Docker-容器数据卷
        1. docker容器数据卷相当于外置的移动硬盘 docker容器数据卷主要功能是:容器的持久化.容器间继承+共享数据 特点: (1)数据卷可以容器之间共享或重用数据 (2)卷中更改可以直接生效 (3)数据 ...

        1. JavaScript的本地对象、内置对象、宿主对象
        1. 首先解释下宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器,一些桌面应用系统等.即由web浏览器或是这些桌面应用系统早就的环境即宿主环境. ...

        1. winfrom 实现窗体圆角
        1. 在窗体中加入一下代码 #region 窗体圆角的实现 private void ComFrmBase_Resize(object sender, EventArgs e) { if (this.Win ...