String类常用方法
JavaDoc文档简介
开发中,一定存在String类的定义,必须掌握;
要大量使用Java的API文档(JavaDoc),可以通过oracle在线进行访问;自JDK1.9开始提供模块化设计,将一些程序类放在不同的模块里面;
模块中有大量的程序开发包,String类位于java.lang中
一般文档的组成部分:
- 类的完整定义;
- 类的相关说明;
- 成员属性摘要;
- 构造方法摘要;(若有Deprecated描述的方法表示不建议使用)
- 方法摘要;
- 方法和成员的详细解释
字符串与字符
方法名称 | 类型 | 描述 |
---|---|---|
public String (char[] value) | 构造 | 将传入的全部字符数组变为字符串 |
public String (char[] value,int offset,int count) | 构造 | 将部分字符数组变为字符串 |
public char cahrAt(int index) | 普通 | 获取指定索引位置的字符 |
public char[] toCharArray() | 普通 | 将字符串中的数据以字符数组的形式返回 |
在程序语言中最早强调的是字符串使用字符数组进行操作;
- 如果想要判断字符串中的每一位做好的做法是将字符串变为字符数组;
- 实际开发中往往使用char类型,因为其可以包含中文数据;
字符串与字节数组
字符串与字节数组之间也可以实现快速转换的处理操作,但是需要注意进行字符串和字节转换时主要是为了进行二进制数据传输或进行编码转换;
方法名称 | 类型 | 描述 |
---|---|---|
public String(byte[] bytes) | 构造 | 将全部的字节数组变为字符串 |
public String(byte[] bytes,int offset,int length) | 将部分字节数组变为字符串 | |
public byte[] getBytes() | 普通 | 将字符串转为字节数组 |
public byte[] getBytes(String charsetName) throws UnsupportedEncondingException | 普通 | 编码转换 |
字节本身有长度限度,一个字节的范围:-128,127
字符串比较
最常用equals()可以实现大小写比较;
方法名称 | 类型 | 描述 |
---|---|---|
public boolean equals(String anObject) | 普通 | 区分大小写的相等判断 |
public boolean equalsIgnoreCase(String anotherString) | 普通 | 不区分大小写的相等判断 |
public compareTo(String anotherString) | 普通 | 进行字符串大小比较 |
public compareToIgnoreCase(String anotherString) | 普通 | 不区分大小写进行字符串大小比较 |
字符串查找
在完整字符串查找子字符串操作;
方法名称 | 类型 | 描述 |
---|---|---|
public boolean contains(String s ) | 普通 | 判断子字符串是否存在 |
public int indexOf(String s) | 普通 | 从头查找指定字符串位置,没有返回-1 |
public int indexOf(String s, int fromIndex) | 普通 | 从指定位置查找指定字符串 |
public int lastIndexOf(String s) | 普通 | 由后向前查找指定字符串位置 |
public int lastIndexOf(String s,int fromIndex) | 普通 | 从指定位置由后向前查找指定字符串位置 |
public boolean startsWith(String s) | 普通 | 判断是否以指定字符串开头 |
public boolean startsWith(String s,int toffset) | 普通 | 由指定位置判断是否以指定字符串开头 |
public boolean endsWith(String s) | 普通 | 判断是否以指定字符串结尾 |
public boolean endsWith(String s,int toffset) | 普通 | 由指定位置判断是否以指定字符串结尾 |
字符串替换
通过指定内容进行指定字符串的替换
方法名称 | 类型 | 描述 |
---|---|---|
public replaceAll(String regex,String replacement) | 普通 | 全部替换 |
public replaceFirst(String regex,String replacement) | 普通 | 替换首个 |
在开发中尤其是设计时替换很重要
字符串拆分
主要是根据指定字符串或表达式实现拆分,结果以字符串数组返回
方法名称 | 类型 | 描述 |
---|---|---|
public String[] split(String regex) | 普通 | 按照指定字符串全部拆分 |
public String[] split(String regex,int limit) | 普通 | 按照指定字符串拆分为指定个数,后面不进行拆分 |
可能会预见拆不了的情况,这个时候使用双引号“\\”进行转义
字符串截取
从一个完整字符串截取子字符串
方法名称 | 类型 | 描述 |
---|---|---|
public String substring(int beginIndex) | 普通 | 从指定索引截取到结束 |
public String substring(int beginIndex,int endIndex) | 普通 | 截取指定索引的字符串 |
实际开发中,开始和结束索引往往是通过indexOf()方法计算得来的
字符串格式化
从jdk1.5开始,Java提供了格式化数据,类似于C中格式化输出
String.format("%s,%d,%5.2f",name,age,score);
方法名称 | 类型 | 描述 |
---|---|---|
public static String format(String format,各种类型,…args) | 普通 | 根据指定结构进行文本格式化显示 |
其他操作方法
方法名称 | 类型 | 描述 |
---|---|---|
public String concat(String s) | 普通 | 描述字符串的连接过程 |
public String intern() | 普通 | 字符串入池保存 |
public boolean isEmpty() | 普通 | 判断是否为空字符串(不是null) |
public int length(String s) | 普通 | 返回字符串长度 |
public String trim() | 普通 | 去除左右的空格信息 |
public String toUpperCase | 普通 | 转大写 |
public String toLowerCase | 普通 | 转小写 |
class StringUtil{
public static String initcap(String str){
if(str == null || "".equals(str)){
return str; //原样返回
}
if(str.length()==1){
return str.toUpperCase()
}
return str.substring(0,1).toUpperCase() + str.substring(1);
}
}