键盘输入任意的三个字符串,实现文本的查找替换功能。如: String source="This is Java program, Java is good ......."; String find="Java"; String dest="Java language"; 要求: (1)将source串中的第一个字符串 find,用字符串dest替换。 (2)仅替换最后的一个串find (3)将source中的所有 find串替换为字符串 dest。 (4)统计 source串中共有多少个单词。
时间: 2024-02-23 20:03:32 浏览: 49
好的,我来为您解答这个问题。
```
import java.util.Scanner;
public class TextReplace {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入任意三个字符串:");
String str1 = scanner.next();
String str2 = scanner.next();
String str3 = scanner.next();
String source = "This is Java program, Java is good.......";
String find = str1;
String dest = str2;
// 将source串中的第一个字符串find,用字符串dest替换。
String result1 = source.replaceFirst(find, dest);
System.out.println("第一个字符串替换结果:" + result1);
// 仅替换最后的一个串find
String result2 = source.replaceAll("(?s)(.*)" + find, "$1" + dest);
System.out.println("最后一个字符串替换结果:" + result2);
// 将source中的所有find串替换为字符串dest。
String result3 = source.replaceAll(find, dest);
System.out.println("所有字符串替换结果:" + result3);
// 统计source串中共有多少个单词。
int count = source.split("\\W+").length;
System.out.println("共有" + count + "个单词");
}
}
```
运行程序,输入三个字符串,程序将分别执行四个要求,并输出结果。
说明:
1. 在第二个要求中,使用了正则表达式来匹配最后一个字符串,其中"(?s)(.*)"表示匹配任意字符,包括换行符,"$1"表示匹配的第一个子串。
2. 在第四个要求中,使用了split方法和正则表达式"\\W+",表示按非字母数字字符进行分割。
希望能够帮到您!
阅读全文