前言:
String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、 提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写.......
小编这次就比较全面系统的带大家总结清楚几乎所有string常用的API,并且带大家拆解清楚,能够灵活使用!!!
小编昨天刚回家,今天整顿好之后
继续日更一篇,今天这篇一定会对小白非常有用的!!!
我们一直都是以这样的形式,让新手小白轻松理解复杂晦涩的概念,
把Java代码拆解的清清楚楚,每一步都知道他是怎么来的,
为什么用这串代码关键字,对比同类型的代码,
让大家真正看完以后融会贯通,举一反三,实践应用!!!!
①官方定义 和 大白话拆解对比
②举生活中常见贴合例子、图解辅助理解的形式
③对代码实例中关键部分进行详细拆解、总结
给小编一个赞或者关注吧,我们一起进步!!
2:查找
官方语言
- boolean contains(CharSequence s): 此方法用来检查字符串中是否包含指定的字符序列(可以是单个字符或一个子字符串)。如果包含,则返回 true;如果不包含,则返回 false。
- int indexOf(int ch) 和 int indexOf(String str): 这些方法用于查找指定字符或子字符串在字符串中首次出现的位置。搜索从字符串的开头开始。如果找到了匹配项,返回的是匹配项的索引(位置);如果没有找到,则返回 -1。
- int indexOf(String str, int fromIndex): 该方法用于查找指定子字符串在字符串中首次出现的位置,但搜索是从 fromIndex 指定的索引位置开始。如果找到了匹配项,返回的是匹配项的索引;如果没有找到,则返回 -1。
- int lastIndexOf(int ch) 和 int lastIndexOf(String str): 这些方法与 indexOf 类似,但是它们从字符串的末尾开始反向搜索,寻找指定字符或子字符串最后一次出现的位置。如果找到了匹配项,返回的是匹配项的索引;如果没有找到,则返回 -1。
- int lastIndexOf(String str, int fromIndex): 该方法用于查找指定子字符串在字符串中最后一次出现的位置,但搜索是从 fromIndex 指定的索引位置开始反向进行。如果找到了匹配项,返回的是匹配项的索引;如果没有找到,则返回 -1。
大白话拆解:
比如 "HELLO WORLD"。现在我们有一些工具可以帮助你在这一串字母里找东西。
- contains: 这就像问:"这串字母里有没有某个特定的小段?" 比如,你可以问:"这串字母里有没有 'WORLD'?" 如果有,它会说 "是的" (true);如果没有,它会说 "没有" (false)。
- indexOf: 这是用来找第一个出现的地方。如果你想知道 "L" 第一次出现在哪里,它会告诉你 "L" 在第 2 个位置(因为计算机计数通常从 0 开始)。如果找不到,它会说 "-1",表示不存在。
- indexOf (带起点): 这也是用来找第一次出现的地方,但是你可以说 "从某个地方开始找"。比如你说 "从第 3 个位置开始找 'L'",那么它会告诉你 "L" 在第 4 个位置。
- lastIndexOf: 这是用来找最后一次出现的地方。还是以 "L" 为例,它会告诉你 "L" 最后一次出现在第 9 个位置。如果找不到,它同样会说 "-1"。
- lastIndexOf (带起点): 这个和上面差不多,但它允许你说 "从某个地方开始往回找"。比如你说 "从第 8 个位置开始往回找 'L'",它会告诉你 "L" 在第 4 个位置。
1. contains
System.out.println(str.contains("WORLD")); // true
System.out.println(str.contains("JAVA")); // false
- contains 就像问一个句子:“你里面有没有某个特定的词语?”
- 比如我们有句子 "HELLO WORLD",我们想知道它里面有没有 "WORLD" 这个词。如果有的话,程序就会回答 "是的" (true);如果没有,比如问它里面有没有 "JAVA",程序就会回答 "没有" (false)。
2. indexOf
System.out.println(str.indexOf('L')); // 2
System.out.println(str.indexOf("WORLD")); // 6
System.out.println(str.indexOf("JAVA")); // -1
- indexOf 就像是在一本字典里查找单词的位置。它告诉我们我们要找的字母或词语第一次出现在哪里。
- 如果我们想找到 "HELLO WORLD" 里的第一个 'L' 出现在哪个位置,答案是第 3 页(因为计算机从 0 开始计数,所以实际上是第 2 个位置)。
- 如果我们想找 "WORLD" 第一次出现的位置,它是在第 7 页(即第 6 个位置)。
- 如果我们找 "JAVA",因为我们这本“书”里没有这个词,所以它会告诉我们 "不在这里",也就是返回 -1。
3. indexOf with fromIndex
System.out.println(str.indexOf("L", 3)); // 4
- indexOf 加上 fromIndex 就像是说:“我从某一页开始找。”
- 在 "HELLO WORLD" 里,我们知道第一个 'L' 是在第 2 个位置,但如果我们想从第 4 个位置开始找下一个 'L',那么它会在第 5 页(即第 4 个位置)找到。
4. lastIndexOf
System.out.println(str.lastIndexOf('L')); // 9
System.out.println(str.lastIndexOf("WORLD"));// 6
System.out.println(str.lastIndexOf("JAVA"));// -1
- lastIndexOf 就是从后往前翻书,看最后一次出现的字母或词语在哪里。
- 对于 "HELLO WORLD" 里的 'L',如果我们从后面开始找,最后一个 'L' 会在第 10 页(即第 9 个位置)。
- "WORLD" 最后一次出现的位置还是第 7 页(即第 6 个位置),因为它只出现了一次。
- 而 "JAVA" 因为根本不存在,所以还是返回 -1 表示找不到。
5. lastIndexOf with fromIndex
System.out.println(str.lastIndexOf("L", 8)); // 4
- lastIndexOf 加上 fromIndex 就是从指定的那一页往回找,直到找到最后一次出现的地方。
- 在 "HELLO WORLD" 里,如果我们从第 9 页(即第 8 个位置)开始往回找 'L',我们会发现它在第 5 页(即第 4 个位置)。
举个栗子:
public class StringMethodsExample {
public static void main(String[] args) {
// 定义一个字符串
String str = "JAVA IS FUN AND USEFUL";
// 1. 检查是否包含某个子字符串
boolean containsFun = str.contains("FUN");
System.out.println("Does the string contain 'FUN'? " + containsFun);
// 2. 查找第一次出现的位置
int firstAIndex = str.indexOf('A');
System.out.println("First occurrence of 'A' is at index: " + firstAIndex);
// 3. 从指定位置开始查找第一次出现的位置
int secondAIndex = str.indexOf("A", 5); // 从索引5开始查找
System.out.println("Second occurrence of 'A' (starting from index 5) is at index: " + secondAIndex);
// 4. 查找最后一次出现的位置
int lastAIndex = str.lastIndexOf('A');
System.out.println("Last occurrence of 'A' is at index: " + lastAIndex);
// 5. 从指定位置开始反向查找最后一次出现的位置
int lastAIndexBefore10 = str.lastIndexOf("A", 10); // 从索引10往回查找
System.out.println("Last occurrence of 'A' before index 10 is at index: " + lastAIndexBefore10);
}
}
代码解释和总结:
1. 检查是否包含某个子字符串
boolean containsFun = str.contains("FUN");
System.out.println("Does the string contain 'FUN'? " + containsFun);
- contains 方法用来检查字符串 str 中是否包含 "FUN" 这个子字符串。
- 如果包含,containsFun 将被设置为 true;否则为 false。
- 然后打印出结果,告诉用户字符串中是否包含 "FUN"。
2. 查找第一次出现的位置
int firstAIndex = str.indexOf('A');
System.out.println("First occurrence of 'A' is at index: " + firstAIndex);
- indexOf 方法用于查找字符 'A' 在字符串 str 中第一次出现的位置。
- 返回值是该字符在字符串中的索引(位置),如果找不到则返回 -1。
- 打印出字符 'A' 第一次出现的位置。
3. 从指定位置开始查找第一次出现的位置
int secondAIndex = str.indexOf("A", 5);
System.out.println("Second occurrence of 'A' (starting from index 5) is at index: " + secondAIndex);
- indexOf 方法加上第二个参数 fromIndex 可以让我们从指定的位置(这里是索引 5)开始查找字符 'A' 的下一次出现。
- 返回的是从索引 5 开始找到的第一个 'A' 的位置。
- 打印出从索引 5 开始的下一个 'A' 出现的位置。
4. 查找最后一次出现的位置
int lastAIndex = str.lastIndexOf('A');
System.out.println("Last occurrence of 'A' is at index: " + lastAIndex);
- lastIndexOf 方法用于从字符串的末尾开始查找字符 'A' 最后一次出现的位置。
- 返回的是字符 'A' 最后一次出现的索引。
- 打印出字符 'A' 最后一次出现的位置。
5. 从指定位置开始反向查找最后一次出现的位置
int lastAIndexBefore10 = str.lastIndexOf("A", 10);
System.out.println("Last occurrence of 'A' before index 10 is at index: " + lastAIndexBefore10);
- lastIndexOf 方法加上第二个参数 fromIndex 允许我们从指定的位置(这里是索引 10)开始反向查找字符 'A' 最后一次出现的位置。
- 返回的是从索引 10 往前数最后一个 'A' 出现的索引。
- 打印出在索引 10 之前字符 'A' 最后一次出现的位置。
输出结果:
Does the string contain 'FUN'? true
First occurrence of 'A' is at index: 0
Second occurrence of 'A' (starting from index 5) is at index: 8
Last occurrence of 'A' is at index: 13
Last occurrence of 'A' before index 10 is at index: 8
小编今天就先给大家总结到这里,有帮助的话,给小编一个关注吧!!!
我们一起进步!!!
我们下次讲字符串截取