口试系列 – String字符串使用详解
String 类是 Java 中最常用的类之一,它用于表现和利用字符串。字符串是一系列字符的序列,可以包含字母、数字、标记等。在 Java 中,String 类是不成变的,这意味着一旦创建了字符串目标,它的内容就不克不及被修正。
一、常用办法
- 获取字符串长度: 使用 length() 办法获取字符串的字符数。
- String text = “Hello, World!”; int length = text.length(); // length 值为 13
- 毗连字符串: 使用 + 运算符或 concat() 办法毗连字符串。
- String firstName = “John”; String lastName = “Doe”; String fullName = firstName + ” ” + lastName; // 使用 + 毗连 String greeting = firstName.concat(” “).concat(lastName); // 使用 concat 办法 // fullName 和 greeting 都市包含 “John Doe”
- 提取子字符串: 使用 substring() 办法提取子字符串。
- String text = “Hello, World!”; String subString = text.substring(0, 5); // 提取从索引 0 到 4 的子字符串,后果是 “Hello”
- 查找子字符串: 使用 indexOf() 办法查找子字符串的地点。
- String text = “Hello, World!”; int index = text.indexOf(“World”); // index 值为 7
- 交换字符串: 使用 replace() 办法交换字符串中的字符或子字符串。
- String text = “Hello, World!”; String replacedText = text.replace(“Hello”, “Hi”); // 交换 “Hello” 为 “Hi”
- 支解字符串: 使用 split() 办法将字符串支解成数组。
- String text = “apple,banana,cherry”; String[] fruits = text.split(“,”); // 支解成数组 [“apple”, “banana”, “cherry”]
- 去除空缺字符: 使用 trim() 办法去除字符串两头的空缺字符。
- String text = ” Hello, World! “; String trimmedText = text.trim(); // 去除空缺字符后的字符串为 “Hello, World!”
- 转换轻重写: 使用 toUpperCase() 和 toLowerCase() 办法将字符串转换为大写或小写。
- String text = “Hello, World!”; String upperCaseText = text.toUpperCase(); // 转换为大写 “HELLO, WORLD!” String lowerCaseText = text.toLowerCase(); // 转换为小写 “hello, world!”
- 反省字符串对否为空: 使用 isEmpty() 办法反省字符串对否为空字符串。
- String emptyStr = “”; boolean isEmpty = emptyStr.isEmpty(); // true
- 推断字符串对否包含子字符串: 使用 contains() 办法推断字符串对否包含某个子字符串。
- String text = “Hello, World!”; boolean containsWorld = text.contains(“World”); // true
- 比力字符串: 使用 equals() 办法比力字符串内容对否相称。
- String str1 = “Hello”; String str2 = “Hello”; boolean isEqual = str1.equals(str2); // true
- 格式化字符串: 使用 String.format() 办法举行字符串格式化。
String name = "John";
int age = 30;
String formattedString = String.format("My name is %s and I am %d years old.", name, age);
// formattedString 的值为 "My name is John and I am 30 years old."
这些是一些常用的 String 类办法和用法示例。String 类提供了丰厚的办法来处理字符串,使得字符串利用变得十分便利。注意,由于 String 目标是不成变的,每次对字符串举行利用都市创建一个新的字符串目标,因此在经常利用字符串时,要注意功能和内存的斲丧。假如必要经常修正字符串,可以思索使用 StringBuilder 或 StringBuffer 类,它们是可变的字符串容器。
二、String 类被计划为不成变的主要有以下缘故
- 线程宁静: 不成变字符串是线程宁静的。多个线程可以同时拜候一个字符串目标,而不必担心并发修正招致的成绩。这是由于字符串一旦被创建,其内容不成变动,因此不会有多个线程同时实验修正它的情况。
- 宁静性: 不成变字符串关于一些宁静性利用很有协助。比如,字符串作为哈希表的键时,假如字符串是可变的,那么在修正键的值后,约莫无法再找到相应的哈希桶,这会招致数据不一律。
- 功能优化: 由于字符串不成变,可以举行一些功能优化。比如,字符串可以被缓存,以制止反复创建相反内容的字符串目标。这种缓存机制在 Java 中被广泛使用,被称为字符串池(String Pool)。
- 宁静哈希码: 字符串的哈希码(hash code)是在创建时盘算的,然后被缓存起来。这是由于哈希码通常用于哈希聚集(如 HashMap)中,不成变字符串的哈希码在整个生命周期内都是安定的,确保了它们在聚集中的可靠性。
总的来说,String 类的不成变性是为了提高功能、宁静性和可维护性。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧