0
点赞
收藏
分享

微信扫一扫

2944:单词替换 有关于replaceAll


总时间限制: 

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())
// {
//
//
// }
//
//
// }
//
}



}

 

举报

相关推荐

0 条评论