题目描述
从键盘输入一个字符串(长度≤40个字符),并以字符’.’结束.
例如:’This is a book.’,现对该字符串进行编辑,编辑功能有:
D:删除一个字符,命令的方式为:D a。其中a为被删除的字符。例如:D s 表示删除字符’s’,若字符串中有多个’s’,则删除第一次出现的,如上例中删除的结果为’Thi is a book.’
I:插入一个字符,命令的格式为:I a1 a2。其中a1表示插入到指定字符前面,a2表示将要插入的字符。例如:I s d 表示在指定字符’s’的前面插入字符’d’,若原串中有多个’s’,则插入在最后一个字符的前面。如上例中,原串:’This is a book.’,插入后:’This ids a book.’
R:替换一个字符,命令格式为:R a1 a2。其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1,则应全部替换。例如:原串:’This is a book.’。 输入命令: R o e,替换后:’ This is a beek.’。
在编辑过程中,若出现被指定的字符不存在时,则给出提示信息“Error!”
输入
Input
二行
第一行为原字符串
第二行为要进行操作的命令
输出
Output
一行,操作后的字符串或不存在该字符的信息。
样例输入
This is a book.
D s
样例输出
Thi is a book.
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner rd=new Scanner(System.in);
String str=rd.nextLine();
String mingling=rd.next();
String c=rd.next();
String d=rd.next();
StringEditor ed=new StringEditor(str,c);
if(mingling.equals("D"))
{
System.out.print(ed.Del(str,c));
}
if(mingling.equals("I"))
{
ed.Insert(str, c, d);
}
if(mingling.equals("R"))
{
ed.Replace(str, c, d);
}
}
}
class StringEditor
{
private String fString;
private String order;
public StringEditor(String fString,String order)
{
this.fString=fString;
this.order=order;
}
public String Del(String str,String b)
{
String s="";
if(str.equals(b))
{
s=str.replaceFirst(b,"");
}
else
System.out.print("No this char.");
return s;
}
public void Insert(String str,String a1,String a2)
{
int i=str.lastIndexOf(a1);
StringBuilder sb=new StringBuilder(str);
System.out.print(sb.insert(i, a2));
}
public void Replace(String str,String a1,String a2)
{
String s=str.replaceAll(a1, a2);
System.out.print(s);
}
求解一下,如果输入D命令,后面接一个String就可以了,不知怎样解决。我要输入三个,就不行了~
还有他说“.”来结束源字符串的输入,~求高手解答啦,有点乱
------解决方案--------------------
哦,好吧,看错了!!!