#1082 : 然而沼跃鱼早就看穿了一切

时间限制:1000ms
单点时限:1000ms
内存限制:256MB

描述

fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼(“marshtomp”,不区分大小写)。为了使句子不缺少成分,统一换成 “fjxmlhx” 。

输入

输入包括多行。

每行是一个字符串,长度不超过200。

一行的末尾与下一行的开头没有关系。

输出

输出包含多行,为输入按照描述中变换的结果。

样例输入
The Marshtomp has seen it all before.
marshTomp is beaten by fjxmlhx!
AmarshtompB
样例输出
The fjxmlhx has seen it all before.
fjxmlhx is beaten by fjxmlhx!
AfjxmlhxB
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()){
			String str = in.nextLine();
			StringBuilder sb = new StringBuilder();
			boolean flag = false;
			int k = 9;
			for(int i = 0;i < str.length(); i++)
				if((str.charAt(i)=='m'||str.charAt(i)=='M')&&str.substring(i, i+9>str.length()?str.length():i+9).compareToIgnoreCase("marshtomp")==0){
					flag = true;
					k = 0;
					if(str.charAt(i)>='A'&&str.charAt(i)<='Z')
						sb.append((char)(str.charAt(i)+32));
					else
						sb.append(str.charAt(i));
				}else if(flag&&k<8){
					if(str.charAt(i)>='A'&&str.charAt(i)<='Z')
						sb.append((char)(str.charAt(i)+32));
					else
						sb.append(str.charAt(i));
					k++;
				}else
					sb.append(str.charAt(i));
				
//			System.out.println(sb.toString());
			String sbstr = sb.toString();
			String replace = sbstr.replaceAll("marshtomp", "fjxmlhx");
			System.out.println(replace);
			
		}
	}
}

  

原文地址:https://www.cnblogs.com/lxk2010012997/p/5442746.html