String类的常用方法(DOC文档组成)
任何一个类的文档由如下几个部分组成
- 类的相关定义
- 包括这个类的名字,有哪些父类,有那些接口
- 是类的相关简介,包括基本的一些使用
- 成员(Field)摘要,属性就是一种成员
- 构造方法(constructor)说明
- 方法(method)摘要,所有类中可以使用的方法
字符串与字符数组
字符串和字符数组的相互转换是我们需要注意的内容。什么时候会用到字符操作?字符最大的好处是可以处理中文。
记住,只要调用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
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等方法)
如果内容重复indexOf方法只能返回第一个匹配到的字符串的位置,所以可以通过循环来实现全字符串查找。
在进行查找的时候,往往会判断开头结尾,这个方法在我们初期很有用。
图片.png
这只是一种判断的手段,很多时候往往一些参数会必用一些标记做一些特殊的处理,这种时候就会使用startWidth或endWidth。
字符串替换
使用一个新的字符串替换掉已有的字符串数据,字符串替换使用的方法如下:
图片.png序号 | 方法名称 | 返回值 | 类型 | 描述 |
---|---|---|---|---|
01 | public String replaceAll(String regex,String replacement) | String | 成员方法 | 替换所有的指定内容 |
02 | public String replaceFirst(String regex,String replacement) | String | 成员方法 | 替换首个内容 |
替换返回类型是字符串,所以我们可以直接用它来输出。***但是字符串的替换与正则有关,这里我们只是暂时的一个讲解
字符串拆分 五星
在整个的字符串之中,可以使用一个特定的字符串来实现字符串的分割处理,也就是说一个完整的字符串,可以根据特殊的那个分隔符划分为若干个子字符串。
序号 | 方法名称 | 返回值 | 类型 | 描述 |
---|---|---|---|---|
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
这种代码在以后的开发当中会经常出现,该程序必须会操作。必须要会拆!
字符串截取 五星
从一个完整的字符串中截取出部分的内容,那么对于截取,有如下方法:
序号 | 方法名称 | 返回值 | 类型 | 描述 |
---|---|---|---|---|
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
网友评论