目录

1. 序言

工欲善其事,必先利其器;器欲尽其能,必先得其法。

根据自己刷题总结出的一些经验,现在整理出关于字符串这个模块的一些基础知识以及技巧,只有了解并掌握这些技巧我们才能快速的解题。


2. 字母的大小写判断与转换

2.1 字母大小写判断

字母大小写判断最原始的做法如下所示:
1)通过比较ASCII
大写转小写:s[i] >= 65 && s[i] <= 90 ==> s[i] += 32
小写转大写:s[i] >= 97 && s[i] <= 122 ==> s[i] -= 32
2) 调用函数
判断字符是否为大写:Character.isUpperCase(ch)
判断字符是否为小写:Character.isLowerCase(ch)


2.2 字母大小写转换


1) 调用函数

大写转小写:str.toLowerCase(); //使用toLowerCase()方法实现小写转换
小写转大写:str.toUpperCase(); //使用toUpperCase()方法实现大写转换

2) 习题实战
​​​709. 转换成小写字母​


3. 字符串替换

replace(old, new, max)

参数解释:
old → 旧字符串,将被替换的子字符串。
new →新字符串,用于替换old子字符串。
max → 可省略,默认全部替换,可选字符串,替换次数不超过max次。(这个参数一般不常用)

1) 使用方法
比如又一个字符串:str = “I love china”;
str = str.replace(“I”, “WE”);
替换后的str = ”WE love china";


4. 将变量转为字符串

.toString()、String.valueOf(待转对象);


5. 将字符串转换为字符型数组

1) char[] ch = str.toCharArray();

2) 其次我们读取单个字符可以这样写:

for(int i = 0;i < str.length();i++){
char ch = str.charAt(i);
}

6. 对字符串进行操作

6.1 字符串内容追加

1) 定义String Buffer (或者 StringBuilder)类
StringBuffer sb = new StringBuffer();
//StringBuilder sb = new StringBuilder();
这两者前者线程安全后者效率高。

2)调用append() 函数
sb.append(追加对象);


6.2 字符串内容反转

sb.reverse(); // 最后需要使用sb.toString();返回String 类型


7. String、char 数组和 int 之间的互相转换

7.1 String 转 char 数组

String str = "abc";
char nums[] = str.toCharArray();
// 另外提一个直接转成char字符,括号内是下标
char s = str.charAt(0);

7.2 char 数组转 String

char nums[] = {'a','b','c'};
String str = String.valueOf(nums);

7.3 String 转 int

String str = "123";
int num = Integer.parseInt(str);

小提示:一般有些题目会有字符串的相加,里面是数字,如果你直接使用这个方法去做,如果数字十分大会超过int的取值范围,所以慎用。

7.4 int 转 String

int num = 123
String str1 = num+"";
String str2 = String.valueOf(num);
String str3 = Integer.toString(num);

7.5 char 类型转 int

char s1 = '1';
int a2 = s1 - '0';

这一小节参考了下面这篇文章:
​​​Java中String、char数组和int之间的互相转换​


8. split() 函数的用法

Java中的 split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回;在刷题的过程中我们或许需要使用到这个函数,下面通过例子来看怎么使用。

以​​Leetcode 习题 1154. 一年中的第几天 为例子​​​ 比如题目中有这样的字符串:date = “2019-01-09”
这时候我们需要获取到它的年月日,这时候我们就需要使用split() 函数了。

// 首先将date中的"-"给去掉,然后返回的结果就是一个不含"-"的字符数组
String[] split = date.split("-");
// 获取年,字符转整形
int year = Integer.valueOf(split[0]);
// 获取月
int month = Integer.valueOf(split[1]);
// 获取日
int day = Integer.valueOf(split[2]);

其它的一些用法可参考下面这篇文章
​​​Java中的split函数的用法​