Description

Tom有些时候为了记录的方便,常常将一些连续的字符用扩展符’-‘简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止字符中间加上一个扩展符’-‘来表示这个字符串。但是为了处理的方便,Tom又必须将这些我们简单记法扩展成原来的字符串。很明显要是人工来做的话必定很麻烦,Tom知道计算机可以帮助他完成这个任务,但是他却不会编程,这的确让他很上火。他知道今天是山东理工大学第三届ACM校赛的日子,届时来自全校的编程爱好者都会来参加比赛,他很兴奋,因为这个困惑他良久的问题终于要被解决了。给你一个含有扩展符’-'的字符串,你的任务就是将他还原成原来的字符串。要求是只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只有当扩展符前后的字符同时是小写字母、大写字母或数字时并且扩展符前面的字符不大于后面的字符才进行扩展,其它情况不进行扩展,原样输出。例如:a-R、D-e、0-b、4-B等字符串都不进行扩展。
Input

第一行是一个正整数T,表示共有T组测试数据(T < 100)。下面的T行,每一行包括一个长度不大于1000的待扩展字符串.
Output

每组测试数据输出一行扩展后的字符串。
Sample
Input

3

ADEa-g-m02

acm-0-5-a-ac-cm-m-A-AC-CM-M

Welcometothe3rdACM/ICPCCampusProgrammingContestofSDUT-1-3-A-z-a-Z

Output

ADEabcdefghijklm02

acm-012345-aaccmm-AACCMM

Welcometothe3rdACM/ICPCCampusProgrammingContestofSDUT-123-A-z-a-Z

Hint

import java.util.Scanner;class ExtendText {String str;public ExtendText(String str) {this.str = str;}public void extend() {for (int i = 0; i < str.length(); i++) {char ch = str.charAt(i);if (ch != '-' || i == 0 || i == str.length() - 1) {// 如果不是拓展符或者不是字符串起始截止位置(注意起始和截止位置没有前驱或后继)System.out.print(ch);} else {char ch1 = str.charAt(i - 1);char ch2 = str.charAt(i + 1);if (ch1 <= ch2 && ((ch1 >= 'a' && ch2 <= 'z') || (ch1 >= 'A' && ch2 <= 'Z')|| (ch1 >= '0' && ch2 <= '9'))) {// 判断条件分为两部分,首先是ch1<=ch2,然后再判断后面的是否在同一种字符中(分别是小写字符,大写字符,数字)// 下面输出时都是一样的,所以可以都加在判断中一次性判断三种for (int j = ch1 + 1; j < ch2; j++) {System.out.printf("%c", j);}} else {System.out.print("-");} // 注意再拓展字符前后不满足拓展条件时需要把拓展字符输出}}System.out.println();}}public class Main {public static void main(String args[]) {Scanner reader = new Scanner(System.in);String  str;int t = reader.nextInt();reader.nextLine();while (t-- > 0) {str = reader.nextLine();ExtendText extendtext = new ExtendText(str);extendtext.extend();}reader.close();}}

字符串扩展_JAVA相关推荐

  1. ES6新特性之字符串扩展

    字符串扩展 在ES6中,为字符串扩展了几个新的API: includes() :返回布尔值,表示是否找到了参数字符串. startsWith() :返回布尔值,表示参数字符串是否在原字符串的头部. e ...

  2. Python字面量、注释、变量、数据类型、数据类型的转换、标识符、运算符、字符串扩展、字符串格式化、数据输入(input语句)

    数据来源 01 字面量 什么是字面量 字面量:在代码中,被写下来的的固定的值,称之为字面量 常用的值类型 字符串 如何在代码中写它们 总结: 02 注释 注释的作用 注释的分类 注释实战 总结 03  ...

  3. 1.19(对象类型判断、复制、in、遍历;深拷贝与浅拷贝;字符串的遍历接口、模板字符串、字符串扩展方法)

    1.19(对象类型判断.复制.in.遍历;深浅拷贝;字符串的遍历接口.模板字符串.unicode.字符串扩展方法) 一.对象 1.属性简洁表示法与属性名表达式 let name = "wuy ...

  4. ES6之字符串扩展方法(常用)

    es6这个String对象倒是扩展了不少方法,但是很多都是跟字符编码相关,个人选了几个感觉比较常用的方法: includes 搜索字符的神器 还记得我们之前如何判断某个字符串对象是否包含特地字符的吗? ...

  5. php获取字符串扩展,PHP7扩展开发之字符串处理

    标签: 本文和大家分享的主要是PHP7扩展开发中字符串的处理相关知识,希望通过本文的分享能帮助大家更好的学习php. 这次,我们来看看字符串在PHP扩展里面如何处理. 示例代码如下: $len = s ...

  6. C++接收字符串数组_Java 中初始化数组

    数组是一种有用的数据类型,用于管理在连续内存位置中建模最好的集合元素.下面是如何有效地使用它们. -- Chris Hermansen(作者) 有使用 C 或者 FORTRAN 语言编程经验的人会对数 ...

  7. java字符串转字符串数组_Java字符串数组到字符串

    java字符串转字符串数组 Today we will look into how to convert Java String array to String. Sometimes we have ...

  8. java 字符串面试_Java字符串面试问答

    java 字符串面试 String is one of the most widely used Java Class. Here I am listing some important Java S ...

  9. java比较字符串大小写_java 字符串中判断字母大小写方法

    展开全部 方法一: 根据 Character 类提供的大小写判断方法 ``e68a8462616964757a686964616f31333366306434`java Character.isUpp ...

最新文章

  1. 同一个网站,手机端跟电脑端显示不同是怎么实现的?...
  2. Onew Ex凝聚共识,维护生态繁荣
  3. java输入输出高速
  4. GBDT原理及利用GBDT构造新的特征-Python实现
  5. AJAX 框架Jquery的使用方法
  6. Web API 源码剖析之默认消息处理程序链之路由分发器(HttpRoutingDispatcher)
  7. excel2016 android,新编Excel 2016应用大全(实战精华版)
  8. 简单理解-Head First 设计模式
  9. 微信小程序自定义侧滑删除组件
  10. Re10:读论文 Are we really making much progress? Revisiting, benchmarking, and refining heterogeneous gr
  11. CwRsync | Windows与Windows之间同步备份配置详解
  12. JZOJ 6297. 2019.08.10【NOIP提高组A】世界第一的猛汉王
  13. Fragment如何实现左右分屏显示的
  14. get和post详解
  15. iOS —— SQLite3 功能使用详解 (三)
  16. Silane-PEG-NH2 氨基聚乙二醇硅烷 NH2-PEG-Silane结构式
  17. hasLayout引发的CSS Bug表 及处理办法【zoom:1】
  18. linux机器上crontab定时任务将日志输出到以日期命名的log文件
  19. 一位程序员的外国梦-国外面试经验谈
  20. 树和二叉树的知识点考前总结

热门文章

  1. mysql中与null值不能比较
  2. 推荐系统之业务架构总览
  3. 第3章 衡量线性回归的指标:MSE,RMSE,MAE
  4. 微服务实践分享(9)文档中心
  5. JWT Authentication Tutorial: An example using Spring Boot--转
  6. solr源码分析之searchComponent
  7. Example of how to use both JDK 7 and JDK 8 in one build.--reference
  8. 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)--转
  9. 深入解析NoSQL数据库的分布式算法
  10. c语言开发游戏趋势,都9012年了,为何我还坚持用C语言开发游戏