Java字符串常规操作案例
字符串声明与初始化
// 直接赋值
String str1 = "Hello World";
// 通过new关键字创建
String str2 = new String("Hello World");
// 字符数组转字符串
char[] charArray = {'H', 'e', 'l', 'l', 'o'};
String str3 = new String(charArray);
// 字节数组转字符串
byte[] byteArray = {72, 101, 108, 108, 111};
String str4 = new String(byteArray);
字符串长度与判断
String str = "Hello Java"; // 获取字符串长度 int length = str.length(); // 10 // 判断是否为空 boolean isEmpty = str.isEmpty(); // false // 判断是否空白 boolean isBlank = str.isBlank(); // false
字符串比较
String str1 = "Hello";
String str2 = "hello";
String str3 = "Hello";
// equals() - 区分大小写比较
System.out.println(str1.equals(str2)); // false
System.out.println(str1.equals(str3)); // true
// equalsIgnoreCase() - 忽略大小写比较
System.out.println(str1.equalsIgnoreCase(str2)); // true
// compareTo() - 字典序比较
System.out.println(str1.compareTo(str2)); // 负数(H < h)
System.out.println(str1.compareTo(str3)); // 0
// == 比较引用地址(不推荐用于内容比较)
System.out.println(str1 == str3); // true(字符串常量池)
System.out.println(str1 == new String("Hello")); // false
字符串查找
String str = "Hello Java Programming";
// indexOf() - 查找字符/字符串第一次出现的位置
int index1 = str.indexOf('o'); // 4(从0开始)
int index2 = str.indexOf("Java"); // 6
int index3 = str.indexOf("Python"); // -1(未找到)
// lastIndexOf() - 查找最后一次出现的位置
int index4 = str.lastIndexOf('o'); // 错误示例,实际应为索引
int lastIndex = str.lastIndexOf('a'); // 15
// contains() - 是否包含子串
boolean hasJava = str.contains("Java"); // true
// startsWith() / endsWith() - 判断前缀后缀
boolean startHello = str.startsWith("Hello"); // true
boolean endIng = str.endsWith("ing"); // true
字符串截取与拼接
// 截取子串
String str = "Hello Java World";
// substring(beginIndex)
String sub1 = str.substring(6); // "Java World"
// substring(beginIndex, endIndex)
String sub2 = str.substring(6, 10); // "Java"(不包含endIndex)
// 字符串拼接
String s1 = "Hello";
String s2 = "World";
// 使用+运算符
String result1 = s1 + " " + s2; // "Hello World"
// 使用concat()
String result2 = s1.concat(" ").concat(s2); // "Hello World"
// 使用StringBuilder/StringBuffer(推荐循环拼接时使用)
StringBuilder sb = new StringBuilder();
sb.append(s1).append(" ").append(s2);
String result3 = sb.toString(); // "Hello World"
// join() - 使用分隔符合并字符串数组
String[] words = {"apple", "banana", "orange"};
String joined = String.join(", ", words); // "apple, banana, orange"
字符串替换
String str = "Hello Java, Java is fun";
// replace() - 替换所有匹配字符
String replaced1 = str.replace('a', 'A'); // "Hello JAvA, JAvA is fun"
// replace() - 替换所有匹配字符串
String replaced2 = str.replace("Java", "Python"); // "Hello Python, Python is fun"
// replaceAll() - 支持正则表达式
String replaced3 = str.replaceAll("J[a-z]+", "PYTHON"); // "Hello PYTHON, PYTHON is fun"
// replaceFirst() - 只替换第一个匹配
String replaced4 = str.replaceFirst("Java", "Python"); // "Hello Python, Java is fun"
字符串分割与转换
// 字符串分割
String str = "apple,banana,orange,grape";
// split() - 返回字符串数组
String[] fruits = str.split(",");
// 结果:["apple", "banana", "orange", "grape"]
// 限制分割次数
String[] limited = str.split(",", 3);
// 结果:["apple", "banana", "orange,grape"]
// 大小写转换
String text = "Hello World";
String upper = text.toUpperCase(); // "HELLO WORLD"
String lower = text.toLowerCase(); // "hello world"
// 去除空白
String spaces = " Hello World ";
String trimmed = spaces.trim(); // "Hello World"
String stripped = spaces.strip(); // "Hello World"(支持Unicode)
String stripLeading = spaces.stripLeading(); // "Hello World "
String stripTrailing = spaces.stripTrailing(); // " Hello World"
字符串格式化
// String.format()
String name = "Alice";
int age = 25;
double score = 92.5;
String formatted = String.format("姓名:%s,年龄:%d,成绩:%.1f", name, age, score);
// 结果:"姓名:Alice,年龄:25,成绩:92.5"
// printf() - 直接打印到控制台
System.out.printf("数值:%10d%n", 255); // "数值: 255"
System.out.printf("小数:%.2f%n", 3.14159); // "小数:3.14"
System.out.printf("左对齐:%-10s%n", "Hello"); // "左对齐:Hello "
// formatted() - Java 15+ 字符串模板
String msg = "Welcome %s to Java %d".formatted(name, 17);
字符数组与字符串互转
// 字符串转字符数组
String str = "Hello";
char[] charArray = str.toCharArray();
// charArray = {'H', 'e', 'l', 'l', 'o'}
// 字符数组转字符串
char[] chars = {'J', 'a', 'v', 'a'};
String fromChars = new String(chars); // "Java"
// 字符串转字节数组
byte[] bytes = str.getBytes(); // 默认编码
byte[] utf8Bytes = str.getBytes(StandardCharsets.UTF_8);
byte[] gbkBytes = str.getBytes("GBK");
综合案例:字符串处理工具
public class StringUtils {
// 反转字符串
public static String reverse(String str) {
return new StringBuilder(str).reverse().toString();
}
// 统计字符出现次数
public static int countChar(String str, char target) {
int count = 0;
for (char c : str.toCharArray()) {
if (c == target) {
count++;
}
}
return count;
}
// 判断是否为回文串
public static boolean isPalindrome(String str) {
String cleaned = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
return cleaned.equals(new StringBuilder(cleaned).reverse().toString());
}
// 移除指定字符
public static String removeChar(String str, char target) {
return str.replace(String.valueOf(target), "");
}
// 首字母大写
public static String capitalize(String str) {
if (str == null || str.isEmpty()) {
return str;
}
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
public static void main(String[] args) {
// 测试
System.out.println(reverse("Hello")); // "olleH"
System.out.println(countChar("Hello World", 'o')); // 2
System.out.println(isPalindrome("A man, a plan, a canal: Panama")); // true
System.out.println(removeChar("Hello World", 'l')); // "Heo Word"
System.out.println(capitalize("java")); // "Java"
}
}
性能建议
-
字符串拼接优化:

- 少量字符串:使用 运算符
- 循环拼接:使用
StringBuilder(非线程安全)或StringBuffer(线程安全) - Java 8+:字符串连接
String.join()更高效
-
避免频繁创建字符串:
// 不推荐 String result = ""; for (int i = 0; i < 1000; i++) { result += i; // 每次都会创建新对象 } // 推荐 StringBuilder sb = new StringBuilder(); for (int i = 0; i < 1000; i++) { sb.append(i); } String result = sb.toString();
这些是Java字符串操作中最常用的功能,掌握它们可以应对大多数字符串处理需求。
版权声明:足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播