8.字符串
Posted river111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.字符串相关的知识,希望对你有一定的参考价值。
- 知识回顾
- 除了数组可以保存多个数据,还有字符串
- 程序用于生活,生活最常用的便是交流(离不开字符串:保存数据)
- 什么是字符串
- 文字或数字或字母的组合
- 分类
- 普通字符串,没特殊说明下:字符串指的就是普通字符串(String)
1) 在java中使用""来标识 - 缓冲字符串(也称为:可变字符串)
1) StringBuffer
2) StringBuilder
- 普通字符串,没特殊说明下:字符串指的就是普通字符串(String)
- 字符串的作用
- 表达一切信息
- 如何使用字符串String
- 字符串的定义语法(当然字符串本身也是数据)
先声明后赋值
声明并赋值
- 字符串的特征
- 字符串的内容是不可变的
字符串是由字符组成的,可以把它理解成字符数组,,如果需要转换成字符数组可以使用toCharArray()方法
声明不赋值,字符串默认值是"",所以长度是0
1)- length()方法:获取字符串中字符个数
- 连接字符串,使用+号
- 字符串的增删改查
增
1) 使用+号,返回拼接后的字符串
2) 使用concat(新字符串)方法,返回拼接后的字符串
- 删
1) 同数组,一旦定义无法删除 - 改
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)它是还能正确转换成汉字的:因为没有此字符,所以表现为乱码 - 查
1) 查看两字符串是否相等:equals(待比较字符串)
1. 只有在另一个对象是String的情况下才可能返回true
2) 查看字符串与缓冲字符串是否相等:contentEquals(待比较的缓冲字符串,普通字符串也行)
1. 另一个对象是CharSequence或其子类的对象
3) 查看两字符串是否相等,忽略大小写:equlasIgnoreCase(待比较字符串)
4) 查看某内容在字符串中的开始下标:indexOf(字符串)
5) 查看某内容在字符串中的结束下标:lastIndexOf(字符串)
6) 查看指定索引处的字符:chartAt(索引)
7) 查看是否以某字符串开始:startsWith(字符串)
8) 查看是否以某字符串结束:endsWith(字符串)
- 字符串的定义语法(当然字符串本身也是数据)
- 如何使用缓冲字符串
- StringBuffer
定义语法
1) 没有先声明后赋值(对它来说:没必要)
2) 声明并赋值
- 特征
1) 字符串内容是可变的
2) length()方法:获取字符串中字符个数
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(索引)
- StringBuilder:API同StringBuffer
- StringBuffer
- 它们之间的区别
- 安全上
- String适用于少量字符串的情况
- StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
- StringBuffer:适用于多线程下在字符缓冲区进行大量操作的情况
- 速度上
- StringBuilder
- StringBuffer
- String
- 安全上
以上是关于8.字符串的主要内容,如果未能解决你的问题,请参考以下文章
8. 字符串转整数(实现atoi函数) [leetcode 8: String to Integer (atoi)]