算法训练 字符串编辑(java)
算法训练 字符串编辑
描述
从键盘输入一个字符串(长度<=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)相关推荐
- 算法训练 字符串编辑 java
算法训练 字符串编辑 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为 ...
- 算法训练 字符串编辑c语言
算法训练 字符串编辑 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为 ...
- 蓝桥杯 ALGO-66 算法训练 字符串编辑
问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为: D a 其中a为被删除的字符,例如:D s 表示删除字符 's' ...
- 算法训练 字符串的展开
** 算法训练 字符串的展开 ** 在初赛普及组的"阅读程序写结果"的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有 类似于"d-h"或者& ...
- 蓝桥杯 试题 算法训练 筛选号码 Java
蓝桥杯 试题 算法训练 筛选号码Java 算法训练 筛选号码 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3 ...
- 蓝桥杯算法训练 礼物(java,个人想法,递归找临界点)
蓝桥杯算法训练 礼物(java,个人想法,递归找临界点) 问题描述 JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友. 在走出了怪物森林以后,JiaoSho ...
- [Java] 蓝桥杯ALGO-143 算法训练 字符串变换
问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌握情况.徐老师自己定义了1,2,3,4,5这5个参数分别指代不同的5种字符串 ...
- 蓝桥杯 ALGO-143 算法训练 字符串变换
问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌握情况.徐老师自己定义了1,2,3,4,5这5个参数分别指代不同的5种字符串 ...
- 蓝桥杯 ALGO-27 算法训练 FBI树 Java版
问题描述 我们可以把由"0"和"1"组成的字符串分为三类:全"0"串称为B串,全"1"串称为I串,既含"0&q ...
最新文章
- MySQL基础篇:逻辑架构
- 【学习笔记】mongoDB初步(一)MongoDB的安装和增删改查基本语法,使用和命令
- 微服务容器化最短路径,微服务 on Serverless 最佳实践
- html语言基础tr,HTML tr 标签
- python 的 virtualenv 环境搭建及 sublime 手动创建运行环境
- ajax添加和删除数据,ajax 添加 更新 删除数据库
- Android仿支付宝高顶部功能条伸缩动画
- Beta冲刺-第二天
- fluent 对电机油冷分析_如何避免发电机过热引起的能源损耗?
- 解决 vim 报错:the imp module is deprecated in favour of importlib
- spring源码之下载及构建
- 淘宝HSF 框架使用 总结
- 蛋花花分享人工智能概念的诞生与发展
- COMSOL有限元仿真深度指南:如何分析更为复杂的材料各向异性结构?
- VS找到w3wp.exe 附加到23wp.exe进行debug程序调试
- java unhandled,Unhandled Exception thrown: class java.lang.ClassCastException
- win7任务计划提示”该任务映像已损坏或已篡改“
- ODOO13 开发教程四 模型中的字段
- 互联网医疗平台(图文问诊、视频问诊、电话问诊、预约挂号、复诊开药)
- 动态规划法(二)找零钱问题
热门文章
- js页面初始化方法只调用一次_跟我学 “Linux” 小程序 Web 版开发(三):云开发相关数据调用
- 常用Openssl命令
- Image flow使用
- java代码调用python_java调用python代码-阿里云开发者社区
- python镜像_Python二叉树的镜像转换实现方法示例
- nginx 启动命令_Windows环境下将Nginx安装到服务中的方法
- 14张思维导图带你系统学习Python核心知识
- vim的一些基本应用
- Docker(三)关于docker 的应用场景
- 【Hibernate一】概述及入门