Java 字符串方法
在Java编程中,字符串(String)是最常用的数据类型之一。Java提供了丰富的字符串处理方法,使开发者能够轻松地操作和处理文本数据。本文将详细介绍Java中常用的字符串方法,帮助初学者更好地理解和使用这些功能。
字符串基础
在深入了解字符串方法之前,让我们先简单回顾一下Java中的字符串特性:
- 字符串在Java中是不可变的(immutable)
- 字符串实际上是
char
数组的封装 - Java中的字符串是
String
类的对象 - Java字符串支持Unicode字符集
提示
Java中的字符串一旦创建,就不能修改。所有字符串操作方法实际上都是创建新的字符串对象,而不是修改原有对象。
常用字符串方法
1. 字符串长度
length()
方法返回字符串中的字符数量:
String greeting = "Hello, World!";
int length = greeting.length(); // 返回13
System.out.println("字符串长度: " + length);
输出:
字符串长度: 13
2. 字符串连接
a. 使用+运算符
String firstName = "John";
String lastName = "Doe";
String fullName = firstName + " " + lastName;
System.out.println(fullName); // 输出: John Doe
b. 使用concat()方法
String str1 = "Hello";
String str2 = "World";
String result = str1.concat(" ").concat(str2);
System.out.println(result); // 输出: Hello World
3. 字符串比较
a. equals()方法
比较两个字符串的内容是否相同:
String str1 = "Hello";
String str2 = "hello";
String str3 = "Hello";
System.out.println(str1.equals(str2)); // 输出: false
System.out.println(str1.equals(str3)); // 输出: true
b. equalsIgnoreCase()方法
比较两个字符串的内容是否相同,忽略大小写:
String str1 = "Hello";
String str2 = "hello";
System.out.println(str1.equalsIgnoreCase(str2)); // 输出: true
c. compareTo()方法
按字典顺序比较两个字符串:
String str1 = "apple";
String str2 = "banana";
String str3 = "apple";
System.out.println(str1.compareTo(str2)); // 输出负数,因为apple在banana之前
System.out.println(str2.compareTo(str1)); // 输出正数,因为banana在apple之后
System.out.println(str1.compareTo(str3)); // 输出0,因为两个字符串相同
4. 字符和子字符串检索
a. charAt()方法
返回指定索引处的字符:
String text = "Hello";
char character = text.charAt(1); // 返回'e'
System.out.println("索引1处的字符是: " + character);
输出:
索引1处的字符是: e
警告
索引从0开始计数。尝试访问超出范围的索引将抛出StringIndexOutOfBoundsException
。
b. indexOf()方法
查找字符或子字符串第一次出现的索引位置:
String sentence = "Java programming is fun and practical";
int index1 = sentence.indexOf('a'); // 返回1
int index2 = sentence.indexOf("fun"); // 返回19
int index3 = sentence.indexOf('z'); // 返回-1,表示未找到
System.out.println("'a'的位置: " + index1);
System.out.println("'fun'的位置: " + index2);
System.out.println("'z'的位置: " + index3);
输出:
'a'的位置: 1
'fun'的位置: 19
'z'的位置: -1
c. lastIndexOf()方法
查找字符或子字符串最后一次出现的索引位置:
String text = "banana";
int lastIndex = text.lastIndexOf('a'); // 返回5
System.out.println("'a'最后出现的位置: " + lastIndex);
输出:
'a'最后出现的位置: 5
5. 字符串提取
a. substring()方法
从字符串中提取子字符串:
String text = "Hello, World!";
String sub1 = text.substring(7); // 从索引7到结尾,返回"World!"
String sub2 = text.substring(0, 5); // 从索引0到4,返回"Hello"
System.out.println("子字符串1: " + sub1);
System.out.println("子字符串2: " + sub2);
输出:
子字符串1: World!
子字符串2: Hello