当前位置: 代码迷 >> Eclipse >> 字符串编者
  详细解决方案

字符串编者

热度:80   发布时间:2016-04-23 01:45:04.0
字符串编辑
题目描述
从键盘输入一个字符串(长度≤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就可以了,不知怎样解决。我要输入三个,就不行了~
还有他说“.”来结束源字符串的输入,~求高手解答啦,有点乱
------解决方案--------------------
哦,好吧,看错了!!!
  相关解决方案