字符串编辑器

题目描述

从键盘输入一个字符串(长度< =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");
		}
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值