算法训练 字符串编辑

描述

从键盘输入一个字符串(长度<=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则应全部替换。
  在编辑过程中,若出现被改的字符不存在时,则给出提示信息。

输入
输入描述:
  输入共两行,第一行为原串(以’.’结束),第二行为命令(输入方式参见“问题描述” 。
输入样例:
This is a book.
D s

输出

输出描述:
  输出共一行,为修改后的字符串或输出指定字符不存在的提示信息。
输出样例:
Thi is a book.

输入样例 1

参考上文
输出样例 1

参考上文
提示

HINT:时间限制:1.0s 内存限制:512.0MB
  命令为删去s,第一个在字符中出现的s在This中,即得到结果。
  
单纯采用的if语句,做完了觉得如果用switch语句应该要简洁一些
字符串分割这方法挺好用的

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String[] str=sc.nextLine().split("");String[] order=sc.nextLine().split(" ");List<String >list=new ArrayList<>();int a=0;if (Objects.equals(order[0], "D")){for (int i=0;i<str.length;i++){if (a==0) {if (!Objects.equals(str[i], order[1])) {list.add(str[i]);} else {a++;}}else {list.add(str[i]);}}if (list.size()!=str.length){for (String i:list){System.out.print(i);}}else {System.out.println("nonentity");}}if(Objects.equals(order[0], "I")){for (int i=0;i<str.length;i++){if (Objects.equals(str[i], order[1])){a=i;}}for (int i=0;i<str.length;i++){if (i!=(a-1)){list.add(str[i]);}else {list.add(str[i]);list.add(order[2]);}}if (list.size()!=str.length){for (String i:list){System.out.print(i);}}else {System.out.println("nonentity");}}if (Objects.equals(order[0], "R")){for (int i=0;i<str.length;i++){if (Objects.equals(str[i], order[1])){list.add(order[2]);a=i;}else {list.add(str[i]);}}if (Objects.equals(list.get(a), str[a])){System.out.println("nonentity");}else {for (String i:list){System.out.print(i);}}}}
}

算法训练 字符串编辑(java)相关推荐

  1. 算法训练 字符串编辑 java

    算法训练 字符串编辑 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为 ...

  2. 算法训练 字符串编辑c语言

    算法训练 字符串编辑 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为 ...

  3. 蓝桥杯 ALGO-66 算法训练 字符串编辑

    问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为: D a 其中a为被删除的字符,例如:D s 表示删除字符 's' ...

  4. 算法训练 字符串的展开

    ** 算法训练 字符串的展开 ** 在初赛普及组的"阅读程序写结果"的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有 类似于"d-h"或者& ...

  5. 蓝桥杯 试题 算法训练 筛选号码 Java

    蓝桥杯 试题 算法训练 筛选号码Java 算法训练 筛选号码 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3 ...

  6. 蓝桥杯算法训练 礼物(java,个人想法,递归找临界点)

    蓝桥杯算法训练 礼物(java,个人想法,递归找临界点) 问题描述 JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友. 在走出了怪物森林以后,JiaoSho ...

  7. [Java] 蓝桥杯ALGO-143 算法训练 字符串变换

    问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌握情况.徐老师自己定义了1,2,3,4,5这5个参数分别指代不同的5种字符串 ...

  8. 蓝桥杯 ALGO-143 算法训练 字符串变换

    问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌握情况.徐老师自己定义了1,2,3,4,5这5个参数分别指代不同的5种字符串 ...

  9. 蓝桥杯 ALGO-27 算法训练 FBI树 Java版

    问题描述 我们可以把由"0"和"1"组成的字符串分为三类:全"0"串称为B串,全"1"串称为I串,既含"0&q ...

最新文章

  1. MySQL基础篇:逻辑架构
  2. 【学习笔记】mongoDB初步(一)MongoDB的安装和增删改查基本语法,使用和命令
  3. 微服务容器化最短路径,微服务 on Serverless 最佳实践
  4. html语言基础tr,HTML tr 标签
  5. python 的 virtualenv 环境搭建及 sublime 手动创建运行环境
  6. ajax添加和删除数据,ajax 添加 更新 删除数据库
  7. Android仿支付宝高顶部功能条伸缩动画
  8. Beta冲刺-第二天
  9. fluent 对电机油冷分析_如何避免发电机过热引起的能源损耗?
  10. 解决 vim 报错:the imp module is deprecated in favour of importlib
  11. spring源码之下载及构建
  12. 淘宝HSF 框架使用 总结
  13. 蛋花花分享人工智能概念的诞生与发展
  14. COMSOL有限元仿真深度指南:如何分析更为复杂的材料各向异性结构?
  15. VS找到w3wp.exe 附加到23wp.exe进行debug程序调试
  16. java unhandled,Unhandled Exception thrown: class java.lang.ClassCastException
  17. win7任务计划提示”该任务映像已损坏或已篡改“
  18. ODOO13 开发教程四 模型中的字段
  19. 互联网医疗平台(图文问诊、视频问诊、电话问诊、预约挂号、复诊开药)
  20. 动态规划法(二)找零钱问题

热门文章

  1. js页面初始化方法只调用一次_跟我学 “Linux” 小程序 Web 版开发(三):云开发相关数据调用
  2. 常用Openssl命令
  3. Image flow使用
  4. java代码调用python_java调用python代码-阿里云开发者社区
  5. python镜像_Python二叉树的镜像转换实现方法示例
  6. nginx 启动命令_Windows环境下将Nginx安装到服务中的方法
  7. 14张思维导图带你系统学习Python核心知识
  8. vim的一些基本应用
  9. Docker(三)关于docker 的应用场景
  10. 【Hibernate一】概述及入门