美文网首页
第四天__①

第四天__①

作者: 糖砂西红柿 | 来源:发表于2018-06-16 19:12 被阅读0次

    String类的常用方法(DOC文档组成)

    任何一个的文档由如下几个部分组成

    • 类的相关定义
      • 包括这个类的名字,有哪些父类,有那些接口
      • 是类的相关简介,包括基本的一些使用
      • 成员(Field)摘要,属性就是一种成员
      • 构造方法(constructor)说明
      • 方法(method)摘要,所有类中可以使用的方法

    字符串与字符数组

    字符串和字符数组的相互转换是我们需要注意的内容。什么时候会用到字符操作?字符最大的好处是可以处理中文。

    图片.png
    记住,只要调用String类的构造方法,就会创建一个字符串。
    范例:现在有一个字符串要求判断其是否是由数组组成的,因为不知道字符串的长度以及包含的内容,所以最好的办法就是字符串转换成字符数组,而后判断每一位字符是否是'0'~'9'之间的内容,如果是则是数字,如果不是则不是数子。
    综上最佳实践就是将这个伪代码封装成一个方法,
    一般而言如果方法的返回值是boolean类型,往往方法名以isXxx()命名。
    public static boolean isNumber(String str){
      char[] data = str.toCharArray();
      for(int i = 0 ; i < data.length ; x++){
        if(data[x] < '0' || data[x] > '9'){
          return false;
        }
      }
      return true; //如果都没有错误返回true。
    }
    //使用返回值的时候最佳实践是用三目运算符进行运算。
    

    综上本节课需要知道字符串可字符数组之间可以相互转换!

    字节与字符串

    字节更多的情况下是用于数据传输以及编码转换处理之中,在String类中提供了对字节操作的支持。

    public String(byte[] bytes)
    //本构造方法是将字节构造成一个字符串,有全部转换就一定有部分转换
    

    在看文档的时候,首先是大类(比如在操作字符串的之后知道我自己需要操作字符串=>我需要找的是类方法还是成员方法=>打开文档=>打开字符串类),然后想清楚我需要的是什么,根据需要的东西即返回值类型再次寻找,真正最终想要的东西。这样思考步骤虽然多了,但是自己查找api的速度一定会变快。
    自己的测试,构造方法可以调用类中的任何方法-构造方法调用构造方法-调用静态方法-调用成员方法
    通过程序可以发现字节并不适合处理中文,因为字节最大为127,字节适合处理二进制文件,比如图片。

    字符串比较

    在之前我们使用过了一个"equals()"的方法,该方法本身是可以进行区分大小写的判断。String类中还有如下的操作。

    • equals() - 区分大小写
    • equalsIgnoreCase() - 不区分大小写
    • compareTo比较大小关系的,比较两个字符串的大小关系
    • 在String类中,compareTo方法是最为重要的一个操作方法,该方法返回一个整型(int)数据,该数据会根据大小关系,返回三类
      • 相等:返回0
      • 小于:返回的内容小于0
      • 大于:返回的结果大于零

    compareTo

    图片.png
    compareTo方法是唯一可以比较大小关系的api

    字符串查找

    从一个完成的字符串之中可以判断指定的内容是否存在,对于字符串的查找方法有很多。

    序号 方法名称 类型 描述
    01 public boolean contains(String s) 成员方法 判断一个子字符串是否存在
    02 public int indexOf(String str) 成员方法 从头开始查找指定字符串的位置,查到了返回位置的开始索引,如果查不到返回-1
    03 02的重载方法 public int indexOf(String str,int fromIndex) 成员方法 从指定位置开始查找子字符串的位置
    04 public int lastIndexOf(String str) 成员方法 由后向前查找子字符串的位置
    05 04的重载方法 public int lastIndexOf(String str,int fromIndex) 成员方法 从指定位置,从后向前查找子字符串的位置
    06 public boolean startWidth(String prefix) 成员方法 判断是否以指定的字符串开头
    07 06重载 public boolean startWidth(String prefix,int toffset) 成员方法 从指定位置判断是否以指定的字符串开头
    08 public boolean endsWidth(String suffix) 成员方法 判断是否以指定的子字符串结尾

    其实最方便的就是contains(包含),因为它直接返回boolean类型返回值。(jdk1.5之后才有的,jdk1.5之前只能用indexOf等方法)

    图片.png
    如果内容重复indexOf方法只能返回第一个匹配到的字符串的位置,所以可以通过循环来实现全字符串查找
    在进行查找的时候,往往会判断开头结尾,这个方法在我们初期很有用
    图片.png
    这只是一种判断的手段,很多时候往往一些参数会必用一些标记做一些特殊的处理,这种时候就会使用startWidth或endWidth。

    字符串替换

    使用一个新的字符串替换掉已有的字符串数据,字符串替换使用的方法如下:

    图片.png
    序号 方法名称 返回值 类型 描述
    01 public String replaceAll(String regex,String replacement) String 成员方法 替换所有的指定内容
    02 public String replaceFirst(String regex,String replacement) String 成员方法 替换首个内容
    图片.png

    替换返回类型是字符串,所以我们可以直接用它来输出。***但是字符串的替换与正则有关,这里我们只是暂时的一个讲解

    字符串拆分 五星

    在整个的字符串之中,可以使用一个特定的字符串来实现字符串的分割处理,也就是说一个完整的字符串,可以根据特殊的那个分隔符划分为若干个子字符串。

    序号 方法名称 返回值 类型 描述
    01 public String[] split(String regex) String[] 成员方法 将我们的字符串全部拆分
    02 01的重载方法 public String[] split(String regex,int limit) String[] 成员方法 将字符串部分拆分(字符数组的长度极限就是limit,比如limt为2,那就说明切分后一共可以获得两个字符数组)

    比较粗暴的理解=>见到数组,没什么好折腾的,就一个字,循环遍历!这都是固定的套路了!

    在字符串拆分的时候,由于参数是正则,所有有些字符我们无法拆分,这种情况下就需要"\"两个斜线转义代表""。比如str.split(".")就需要写成str.split("\."),因为"."在正则中表示匹配所有。
    在我们实际开发中,我们经常会遇到如下

    图片.png
    上图这种情况,一次是拆不完的,所以第一次要根据"|"来拆,但是"|"也是需要转义的即拆分竖线需要"\|",第二次再用":"拆。完整实现如下:
    图片.png
    这种代码在以后的开发当中会经常出现,该程序必须会操作。必须要会拆!

    字符串截取 五星

    从一个完整的字符串中截取出部分的内容,那么对于截取,有如下方法:

    序号 方法名称 返回值 类型 描述
    01 public String substring(int beginIndex) String 成员方法 从指定索引截取到结尾
    02 01的重载方法 public String substring(int beginIndex,int endIndex) String 成员方法 从指定索引截取到结尾

    千万记住了,在程序中的字符串截取,只能从0开始,而且只能使用正整数。否则就会索引越界。

    字符串的常用操作方法

    在String类里面也定义有一些比较小的操作方法。

    序号 方法名称 返回值 类型 描述
    01 public String trim() String 成员方法 取掉字符串中的左右空格
    02 public String toUpperCase() String 成员方法 字符串转大写
    03 public String toLowerCase() String 成员方法 字符串转小写
    04 public String intern() String 成员方法 字符串入池
    05 public String concat(String Str) String 成员方法 字符串连接,等同于+号,emm挺鸡肋的,并不会入池
    06 public int length(String str) int 成员方法 取得字符串长度,在数组中有一个属性是"数组名称.length属性",但是在String类中length是一个成员方法,成员方法必须通过,实例化的成员才能调用,并且方法后边一定会有"()"存在,唯一需要记住的是,length后边需要有一个括弧
    07 public boolean isEmpty() boolean 成员方法 判断是否为空字符串(但是不是null,而是长度为0)

    trim()方法:


    图片.png
    图片.png

    两边取掉,中间保留。

    toUpeerCase与toLowCase这两种方法,不是字母的字符串不会进行转换。 图片.png
    图片.png

    实际上就少了用户判断,不用判断该字符的范围在不在xx~xx之间。
    isEmpty()方法:


    图片.png
    结果:
    图片.png
    在String类之中唯一的遗憾就是没有提供首字母大写的方法,所以我们要想使用就必须自己实现,思路:变为字符数组,截取第一个,变大,再组织成字符串,再进行入池操作。
    图片.png
    图片.png

    相关文章

      网友评论

          本文标题:第四天__①

          本文链接:https://www.haomeiwen.com/subject/ndubeftx.html