题目描述
从键盘输入一个字符串(长度< =40个字符),并以字符’.’结束。编辑功能有:
1 D:删除一个字符,命令的方式为:D a 其中a为被删除的字符,例如:D s 表示删除字符’s’,若字符串中有多个 ‘s’,则删除第一次出现的。
2 I:插入一个字符,命令的格式为:I a1 a2 其中a1表示插入到指定字符前面,a2表示将要插入的字符。例如:I s d 表示在指定字符 ’s’ 的前面插入字符 ‘d’ ,若原串中有多个 ‘s’,则插入在最后一个字符的前面。
3 R:替换一个字符,命令格式为:R a1 a2 其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1则应全部替换。
在编辑过程中,若出现被改的字符不存在时,则给出提示信息("no exist")。
输入
第一行输入一行字符串第二行输入指令
输出
输出被编辑之后的字符串,若无法编辑则输出no exist
样例输入
this is a book.
D s
样例输出
thi is a book.
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String a = sc.next();
String a1,a2=null;
//a == "D"注意是内容相等,不能直接等
if (a.equals("D")) {
a1 = sc.next();
}else {
a1 = sc.next();
a2 = sc.next();
}
if (line.contains(a1)) {
switch(a) {
case "D":
//删除第一次出现的
line = line.replaceFirst(a1, "");
break;
case "I":
//插入在最后一个字符的前面
int index = line.lastIndexOf(a1);
//substring包前不包后
line = line.substring(0,index)+a2+line.substring(index);
break;
case "R":
//在原串中有多个a1则应全部替换
line = line.replaceAll(a1, a2);
break;
}
System.out.println(line);
}else {
System.out.println("no exist");
}
}
}