总时间限制:
1000ms
内存限制:
65536kB
描述
输入一个字符串,以回车结束(字符串长度<=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
输入
输入包括3行,
第1行是包含多个单词的字符串 s;
第2行是待替换的单词a(长度 <= 100);
第3行是a将被替换的单词b(长度 <= 100).
s, a, b 最前面和最后面都没有空格.
输出
输出只有 1 行,将s中所有单词a替换成b之后的字符串。
样例输入
You want someone to help you You I
样例输出
I want someone to help you
这题用replaceAll有一个bug,就是
you ha youyou you
you
i
输出
i ha ii i
改进:
都加上空格" "+s+" "用" "+a+" "和" "+b+" "替换
但依旧有一个bug
you ha you you ha
you
i
输出
i ha i you
因为在执行过程中,
i |ha you you ha
i ha i |you ha
都是在 | 后继续执行的
然后两次执行replace就ok了
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
static Scanner in = new Scanner(System.in);
static int MAXN=10000+100;
static void dfs(long p,int n)
{
return ;
}
public static void main(String args[])throws IOException {
// int n=in.nextInt();
// int m=in.nextInt();
// int[] a=new int[n+1];
//
// for(int i=1;i<=n;i++)
// {
// a[i]=in.nextInt();
// }
String s;
s = in.nextLine();
s=" "+s+" ";
String a=in.next();
String b=in.next();
a=" "+a+" ";
b=" "+b+" ";
s=s.replace(a,b);
s=s.replace(a,b).trim();//trim() 方法用于删除字符串的头尾空白符。
System.out.print(s);
// while(in.hasNext())
// {
//
//
// }
//
//
// }
//
}
}