8.字符串

Posted river111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.字符串相关的知识,希望对你有一定的参考价值。

  1. 知识回顾
    1. 除了数组可以保存多个数据,还有字符串
    2. 程序用于生活,生活最常用的便是交流(离不开字符串:保存数据)
  2. 什么是字符串
    1. 文字或数字或字母的组合
    2. 分类
      1. 普通字符串,没特殊说明下:字符串指的就是普通字符串(String)
        1) 在java中使用""来标识
      2. 缓冲字符串(也称为:可变字符串)
        1) StringBuffer
        2) StringBuilder
  3. 字符串的作用
    1. 表达一切信息
  4. 如何使用字符串String
    1. 字符串的定义语法(当然字符串本身也是数据)
      1. 先声明后赋值
        技术分享图片

      2. 声明并赋值
        技术分享图片

    2. 字符串的特征
      1. 字符串的内容是不可变的
      2. 字符串是由字符组成的,可以把它理解成字符数组,,如果需要转换成字符数组可以使用toCharArray()方法
        技术分享图片

      3. 声明不赋值,字符串默认值是"",所以长度是0
        1) 技术分享图片

      4. length()方法:获取字符串中字符个数
      5. 连接字符串,使用+号
    3. 字符串的增删改查

      1. 1) 使用+号,返回拼接后的字符串
        2) 使用concat(新字符串)方法,返回拼接后的字符串
        技术分享图片


      2. 1) 同数组,一旦定义无法删除

      3. 1) 去掉左右两边的空格:trim()
        2) 大小写转换:toUpperCase();toLowerCase()
        3) 用新内容替换字符串中的旧内容:replace(新字符串,旧字符串)
        4) 用新内容替换字符串中的内容,使用正则表达式搜索需要替换的内容:replaceAll(新内容,正则表达式);
        5) 从原字符串中截取子串
        1. substring(开始位置,结束位置);有头没尾
        2. substring(开始位置);一至到末尾
        6) 拆分成字符串数组:splict("拆分的字符规则")
        7) 变成字节数组:getBytes("指定编码格式字符串");
        1. 如果不指定,用缺省编码(控制台此刻编码)
        2. 也可根据需要指定是那种编码格式的字节数组(编码方式不同,字节数组自然不同[数据是唯一的])
        1. 一个汉字:gkb编码需要2字节表示;utf-8需要3字节;iso-需要1字节
        3. 如何把字节数组变成相应的字符串:new String(字节数组,编码类型);
        1. 如果编码集不支持中文(如:iso)它是还能正确转换成汉字的:因为没有此字符,所以表现为乱码

      4. 1) 查看两字符串是否相等:equals(待比较字符串)
        1. 只有在另一个对象是String的情况下才可能返回true
        2) 查看字符串与缓冲字符串是否相等:contentEquals(待比较的缓冲字符串,普通字符串也行)
        1. 另一个对象是CharSequence或其子类的对象
        3) 查看两字符串是否相等,忽略大小写:equlasIgnoreCase(待比较字符串)
        4) 查看某内容在字符串中的开始下标:indexOf(字符串)
        5) 查看某内容在字符串中的结束下标:lastIndexOf(字符串)
        6) 查看指定索引处的字符:chartAt(索引)
        7) 查看是否以某字符串开始:startsWith(字符串)
        8) 查看是否以某字符串结束:endsWith(字符串)
  5. 如何使用缓冲字符串
    1. StringBuffer
      1. 定义语法
        1) 没有先声明后赋值(对它来说:没必要)
        技术分享图片

        2) 声明并赋值
        技术分享图片

      2. 特征
        1) 字符串内容是可变的
        2) length()方法:获取字符串中字符个数
        3) 连接缓冲字符串,不能使用+号
      3. 增删改查
        1) 增
        1. append("新字符串或缓冲字符串");
        2) 删
        1. 删除开始到结束的位置,有头没尾
        2. 删除指定位置的字符
        3) 改
        1. 修改指定位置的内容:replace(开始位置,结束位置,新内容)
        2. 将字符串内容反序:reverse()
        3. 在指定索引处插入字符:setCharAt(索引,字符);
        4. 从原字符串中截取子串
        1. substring(开始位置,结束位置);有头没尾
        2. substring(开始位置);一至到末尾
        5. 转换成普通字符串:toString();
        4) 查
        1. 查看某内容在字符串中的开始下标:indexOf(字符串)
        2. 查看某内容在字符串中的结束下标:lastIndexOf(字符串)
        3. 查看指定索引处的字符:chartAt(索引)
    2. StringBuilder:API同StringBuffer
  6. 它们之间的区别
    1. 安全上
      1. String适用于少量字符串的情况
      2. StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
      3. StringBuffer:适用于多线程下在字符缓冲区进行大量操作的情况
    2. 速度上
      1. StringBuilder
      2. StringBuffer
      3. String


























































以上是关于8.字符串的主要内容,如果未能解决你的问题,请参考以下文章

分配字符串 uint8_t

习题8-8 判断回文字符串

utf-8带bom 获取到utf-8字符串需要加上bom

8. 字符串转整数(实现atoi函数) [leetcode 8: String to Integer (atoi)]

8. 字符串转整数(实现atoi函数) [leetcode 8: String to Integer (atoi)]

8.字符串