一、字符串比较
字符串比较是最基本的字符串匹配操作之一。Java提供了两种方式进行字符串比较:equals和==。equals方法比较的是字符串字符序列的内容是否相同,而==比较的是两个字符串对象的地址是否相同。下面是两种比较方式的示例代码:
public class StringCompareDemo { public static void main(String[] args) { String s1 = "hello"; String s2 = "hello"; String s3 = new String("hello"); System.out.println(s1.equals(s2)); //输出true System.out.println(s1.equals(s3)); //输出true System.out.println(s1 == s2); //输出true System.out.println(s1 == s3); //输出false } }
从上面的代码可以看出,s1和s2都指向同一个字符串常量"hello",因此它们的地址相同;而s3指向另外一个新的对象,它的地址和s1不同。因此,使用==比较s1和s2的地址相同,而s1和s3的地址不同。
二、字符串搜索
在Java中,字符串搜索操作是常见的需求。Java提供了多种搜索方法,例如indexOf和lastIndexOf等。 indexOf方法从字符串开始位置向后寻找所需要的字符串,而lastIndexOf方法从字符串结束位置向前查找所需的字符串。下面是这两种方法的使用示例代码:
public class StringSearchDemo { public static void main(String[] args) { String s = "hello world"; System.out.println(s.indexOf("l")); //输出2 System.out.println(s.indexOf("l", 3)); //输出3 System.out.println(s.lastIndexOf("l")); //输出9 System.out.println(s.lastIndexOf("l", 8)); //输出3 } }
从上面的代码可以看出,indexOf方法可以接受两个参数,第一个参数是需要查找的字符串,第二个参数是开始查找的位置,而lastIndexOf方法也可以接收两个参数,第二个参数代表了结束查找的位置。
三、正则表达式匹配
正则表达式是一个强大的字符串匹配工具,它可以匹配各种复杂的字符串格式。Java提供了java.util.regex包来支持正则表达式的匹配处理。其中常用的是Pattern和Matcher类。Pattern类表示一个正则表达式,Matcher类则代表一个匹配器。使用Matcher对象可以进行各种匹配操作,例如查找、替换、分割等。下面是使用Pattern和Matcher进行正则表达式匹配的示例代码:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { String text = "This is an example of a regular expression."; String pattern = "\\b\\w+\\b"; Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(text); while (m.find()) { System.out.println("Found: " + m.group()); } } }
从上面的代码可以看出,首先构建正则表达式实例,然后调用matcher方法得到匹配器,使用find方法查找匹配结果,使用group方法获取匹配字符串。
四、字符串替换
字符串替换是常见的字符串操作之一。Java提供了replaceAll、replaceFirst和replace三种方法来进行字符串替换。其中,replaceAll方法可以全部替换所需的字符串,replaceFirst方法只会替换第一次出现的字符串,replace方法可以替换指定的字符或字符串。下面是使用replaceAll和replace方法进行字符串替换的示例代码:
public class StringReplaceDemo { public static void main(String[] args) { String s = "hello world"; String s1 = s.replaceAll("l", ""); System.out.println(s1); //输出"heo word" String s2 = s.replace("l", ""); System.out.println(s2); //输出"heo word" } }
从上面的代码可以看出,使用replaceAll方法可以将所有的"l"替换为空字符串,而replace方法只会将第一个"l"替换为空字符串。
五、字符串截取
字符串截取是一个常见的字符串操作,Java提供了substring方法来实现字符串截取。 substring方法接收两个参数,第一个参数指定截取开始的位置,第二个参数指定结束位置(不包括结束位置的字符)。下面是substring方法的使用示例代码:
public class StringSubstrDemo { public static void main(String[] args) { String s = "hello world"; String s1 = s.substring(3); System.out.println(s1); //输出"lo world" String s2 = s.substring(3, 7); System.out.println(s2); //输出"lo w" } }
从上面的代码可以看出,使用substring方法可以方便快捷地实现字符串的截取操作。