编写一个程序,它读取一行文本,之后显示该文本,但把hate第一次出现的地方修改为love.

问题描述

编写一个程序,它读取一行文本,之后显示该文本,但把hate的第一次出现修改为love。
例如,一个可能的样本对话框可以是:
Enter a line of text.
I hate you.
I have rephrased that line to read:
I love you.
你能够假定hate已经出现在输入文本中。如果hate在移动中出现多次,你的程序将仅仅替换他的第一次出现。

在API文档中,String类下给我们提供了实现“替换”功能的方法,下面我们一起来简单看一下:

replace(CharSequence target, CharSequence replacement)
使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串

String s1 = "I hate you!";
System.out.println(s1.replace("hate","love"));//运行结果:I love you!

String s2 = "I hate hate you!";
System.out.println(s2.replace("hate","love"));//运行结果:I love love you!

replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

String s3 = "I hate hate you!";
System.out.println(s3.replaceAll("hate","love"));//运行结果:I love love you!

replaceFirst(String regex, String replacement)
使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。

String s4 = "I hate hate you!";
System.out.println(s4.replaceFirst("hate","love"));//运行结果:I love love you!

通过以上三种方法的举例说明,不难发现本题使用的是replaceFirst(String regex,String replacement)

附上完整代码

import java.util.Scanner;
public class ReplaceHate {

	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		System.out.println("Enter a line of text.");
		String text = sc.nextLine();//键盘输入:I hate hate you!
		
		//replaceFirst();取代第一次出现的位置。
		String s2 = text.replaceFirst("hate","love");
		System.out.println("I have rephrased that line to read:");
		System.out.println(s2);//运行结果:I love love you!
	}

}
发布了5 篇原创文章 · 获赞 0 · 访问量 14

猜你喜欢

转载自blog.csdn.net/qianyuq/article/details/104892596