Java 中 String 类的常用 API 方法
目前在工作中发现String类的中的API还是经常用的,比如在对文件的存储路径进行一些标准化的处理的时候,经常会用到截取子串等操作,所以下面对常用的API进行一些总结
1. 获取字符串长度 – length()
示例:
String str = "Hello, Java!";
int length = str.length(); // 输出:12
注意事项:
- length() 方法返回字符串的字符数。
- 返回的是字符数,而不是字节数。
2. 字符串拼接 – concat() 或 + 操作符
示例:
String str1 = "Hello";
String str2 = "Java!";
String combinedStr = str1.concat(" ").concat(str2); // 输出:"Hello Java!"
// 或者
String combinedStr = str1 + " " + str2; // 输出:"Hello Java!"
注意事项:
- 字符串拼接可以使用 concat() 方法或简单的 + 操作符。
- 在大量拼接字符串时,建议使用 StringBuilder 或 StringBuffer 以提高性能。
3. 获取指定索引位置的字符 – charAt()
示例:
Copy code
String str = "Java Programming";
char character = str.charAt(5); // 获取索引为5的字符,输出:'P'
注意事项:
- 索引从 0 开始。
- 使用索引超出字符串长度的情况会引发 StringIndexOutOfBoundsException 异常。
4. 截取子串 – substring()
示例:
String str = "Java Programming";
String subStr = str.substring(5); // 从索引5开始截取子串,输出:"Programming"
String subStr = str.substring(5, 12); // 从索引5开始截取到索引12(不包括索引12)的子串,输出:"Progra"
注意事项:
- substring() 方法返回从指定索引开始到字符串末尾的子串。
- 第二个参数为截取的结束位置索引(不包含)
- 返回的子串包含起始索引处的字符,但不包含结束索引处的字符。
5. 字符串替换 – replace()
示例:
String str = "I love Java";
String replacedStr = str.replace("Java", "programming"); // 替换 "Java" 为 "programming"
// 输出:"I love programming"
注意事项:
- replace() 方法替换所有匹配的子串。
- 不会改变原始字符串,而是返回一个新的字符串。
6. 检查字符串是否为空 – isEmpty()
示例:
String emptyStr = "";
String nonEmptyStr = "Hello";
boolean isEmpty = emptyStr.isEmpty(); // 输出:true
boolean isNonEmpty = nonEmptyStr.isEmpty(); // 输出:false
注意事项:
-
isEmpty() 方法用于检查字符串是否为空字符串。
-
不会检查字符串是否为 null。
-
StringUtils.isNotBlank() 方法
StringUtils.isNotBlank() 方法位于 Apache Commons Lang 库中,用于更全面地判断字符串是否为空。
示例:
import org.apache.commons.lang3.StringUtils;
String str1 = "";
String str2 = " ";
String str3 = "Hello";
boolean isNotBlank1 = StringUtils.isNotBlank(str1); // 输出:false
boolean isNotBlank2 = StringUtils.isNotBlank(str2); // 输出:false
boolean isNotBlank3 = StringUtils.isNotBlank(str3); // 输出:true
注意事项:
- StringUtils.isNotBlank() 方法会过滤掉字符串中的空格字符,只要字符串中包含非空格字符,即被认为是非空。
- 该方法通常在实际工作中更常用,因为它更全面地检查字符串是否为空,并且会过滤掉空格等空白字符,更适合实际应用场景中的字符串判空需求。
- 在实际开发中,如果涉及到复杂的字符串判空需求,StringUtils.isNotBlank() 方法通常被视为更可靠和全面的选择
7. 检查字符串是否包含指定字符序列 – contains()
示例:
String str = "Java Programming";
boolean containsJava = str.contains("Java"); // 输出:true
boolean containsPython = str.contains("Python"); // 输出:false
注意事项:
- contains() 方法区分大小写,返回布尔值表示是否包含指定字符序列。
8.删除字符串两端的空白字符-trim()
示例:
String str = " Java Programming ";
String trimmedStr = str.trim(); // 输出:"Java Programming"
注意事项:
- trim() 方法只会删除字符串开头和结尾的空格字符,而不会影响字符串中间的空格。
9 .返回指定字符或子串在字符串中最后一次出现的位置索引-lastIndexOf()
示例:
String str = "Java is fun, Java is powerful";
int lastIndex = str.lastIndexOf("Java"); // 输出:13(最后一次出现的位置)
注意事项:
- lastIndexOf() 方法返回指定字符或子串最后一次出现的位置索引。
- 如果没有找到指定字符或子串,则返回 -1。
10. 获取指定字符或子串在字符串中首次出现的位置 – indexOf()
示例:
String str = "Java is fun, Java is powerful";
int firstIndex = str.indexOf("Java"); // 输出:0(第一次出现的位置)
注意事项:
- indexOf() 方法返回第一次出现的位置索引,如果没有找到,返回 -1。
10. 分割字符串,结果以字符串数组的形式返回- split()
示例:
String text = "apple,orange,banana,grape";
String[] fruits = text.split(","); // 使用逗号进行分割,结果为 {"apple", "orange", "banana", "grape"}
// 另一个示例,限制分割后的数组长度为 2
String[] parts = text.split(",", 2); // 结果为 {"apple", "orange,banana,grape"}
public String[] split(String regex, int limit)
- regex 是一个正则表达式,它定义了分割字符串的规则。字符串将根据这个规则被分割成多个子字符串。
- limit 参数是一个整数,表示分割后返回的字符串数组的最大长度。如果提供的 limit 大于 0,则分割的子字符串数量最多为 limit – 1。如果 limit 小于等于 0,则将忽略限制,返回所有可能的分割结果。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/189654.html