在开发过程中像获取字符串长度、字符串截取、字符串转数组这样的方法我们常用会很熟悉,但是有很多实用方法我们并不了解。
如:
了解String提供的基础方法,不需要再重复的去编写逻辑来实现这些已经存在的处理方法
转换的方法有:转大写、小写,去除前后空格、字符串截取、转为数组。
适用方式 | 方法 | 返回类型 | 具体实现 |
---|---|---|---|
字符串全部转为大写 | toUpperCase | String | str.toUpperCase() |
字符串全部转为小写 | toLowerCase | String | str.toLowerCase() |
去除字符串两边的空格 | trim | String | str.trim() |
字符串以某字符切割转为字符串数组 | split | String[] | str.split("") |
字符串截断,如果只有一个数值则截值到最后一位 | substring | String | str.substring(1) |
将一个字符串转换成字节数组 | getBytes | byte[] | str.getBytes() |
代码实现:
public static void main(String[] args) {
String str = "anyusheng";
// String的转换方法
str = str.toUpperCase(); // 全部转为大写
System.out.println("字符串全部转为大写:str.toUpperCase() --> "+str);
str = str.toLowerCase(); // 全部转为小写
System.out.println("字符串全部转为小写:str.toLowerCase() --> "+str);
str = str.trim(); // 去除字符串两边的空格
System.out.println("去除字符串两边的空格:str.trim() --> "+str);
String strArray[] = str.split(","); // 字符串以某字符切割转为字符串数组
System.out.println("字符串以某字符切割转为字符串数组:str.split(x) --> "+Arrays.toString(strArray));
str = str.substring(1); // 字符串截断,如果只有一个数值则截值-最后一位
System.out.println("字符串截断,如果只有一个数值则截值-最后一位:str.substring(x) --> "+str);
byte[] bytes = str.getBytes(); // 将一个字符串转换成字节数组
System.out.println("将一个字符串转换成字节数组:str.getBytes() --> "+Arrays.toString(bytes));
System.out.println((char)bytes[0]); // byte转为char
}
判断的方法有:判断字符串以什么字符开头、结尾、判断字符串是否为空、判断字符串是否包含指定字符、判断字符串是否全等(不区分大小写)
适用方式 | 方法 | 返回类型 | 具体实现 |
---|---|---|---|
判断是否以指定字符串结尾 | endsWith | boolean | str.endsWith("ng") |
判断是否以指定字符串开始 | toLowerCase | boolean | str.startsWith("an") |
判断字符串是不是为空,前提条件字符串不能为空 | isEmpty | boolean | str.isEmpty() |
判断字符串里是不是包含指定字符串 | contains | boolean | str.contains("ny") |
判断匹配字符串是否相等,不区分大小写 | equalsIgnoreCase | boolean | str.equalsIgnoreCase("ANYUSHENG") |
代码实现:
public static void main(String[] args) {
String str = "anyusheng";
// String的判断方法
boolean b = false;
b = str.endsWith("ng"); // 判断是否以指定字符串结尾
System.out.println("判断是否以指定字符串结尾:str.endsWith(xxx) --> "+b);
b = str.startsWith("an"); // 判断是否以指定字符串开始
System.out.println("判断是否以指定字符串开始:str.startsWith(xxx) --> "+b);
b = str.isEmpty(); // 判断字符串是不是为空,前提条件字符串不能为空
System.out.println("判断字符串是不是为空,前提条件字符串不能为空:str.isEmpty() --> "+b);
b = str.contains("ny"); // 判断字符串里是不是包含指定字符串
System.out.println("判断字符串里是不是包含指定字符串:str.contains() --> "+b);
b = str.equalsIgnoreCase("ANYUSHENG"); // 判断匹配字符串是否相等,不区分大小写
System.out.println("判断匹配字符串是否相等,不区分大小写:str.equalsIgnoreCase() --> "+b);
}
此方法有:字符串转char集合、char转字符串
适用方式 | 方法 | 返回类型 | 具体实现 |
---|---|---|---|
字符串转char集合 | toCharArray | char[] | str.toCharArray() |
char集合转字符串 | new String(char数组) | String | new String(ch) |
String.valueOf(char数组) | String | String.valueOf(ch) | |
char集合转字符串筛选指定一段字符 | new String(char数组,下标,长度) | String | new String(ch,2,3) |
String.valueOf(char数组,下标,长度) | String | String.valueOf(ch,2,3) |
代码实现:
public static void main(String[] args) {
String str = "anyusheng";
// 字符串转char集合
char[] ch = str.toCharArray();
System.out.println("字符串转char集合:str.toCharArray() --> "+ Arrays.toString(ch));
// char集合转字符串
String chStr = new String(ch);
System.out.println("char[]转String:new String(ch) --> "+chStr);
chStr = String.valueOf(ch);
System.out.println("char[]转String:String.valueOf(ch) --> "+chStr);
// char集合转字符串筛选指定一段字符
chStr = new String(ch,2,3);
System.out.println("char集合转字符串筛选指定一段字符:new String(ch,2,3) --> "+chStr);
chStr = String.valueOf(ch,2,3);
System.out.println("char集合转字符串筛选指定一段字符:String.valueOf(ch,2,3) --> "+chStr);
}
单单String的方法肯定不能满足我们日常的各种需求和扩展性,像转换首字母为大写或小写,在这种时候我们可以使用StringUtils等各种实现类,目前对字符串的处理在市面上的工具类基本已经都包含了基础处理,所以我们尽量避免无用的开发字符串处理逻辑,个性化的逻辑另外。