JAVA语言字符串扩展
小标 2019-01-09 来源 : 阅读 883 评论 0

摘要:本文主要向大家介绍了JAVA语言字符串扩展,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言字符串扩展,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

字符串扩展
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem 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

Sample Output

ADEabcdefghijklm02
acm-012345-aaccmm-AACCMM
Welcometothe3rdACM/ICPCCampusProgrammingContestofSDUT-123-A-z-a-Z

Hint

Source
山东理工大学第三届ACM程序设计竞赛


import java.util.Scanner;

public class Main {
    public static void main(String args[]){
        Scanner input = new Scanner(System.in);
        int t = input.nextInt();
        input.nextLine();
        while(t-- != 0) {

            String ss = input.nextLine();
            char[] ch = ss.toCharArray();
            int k = 0;
            int i;
            System.out.print(ch[0]);
            for(i = 1;i < ch.length-1;i++) {         //字符串的最后一个和第一个为'-'没有意义
                if(ch[i] == '-') {
                    if((ch[i-1] >= 'a' && ch[i-1] <= 'z') && (ch[i+1] >= 'a' && ch[i+1] <= 'z')) {        //判断'-'前后 是否是[a-z]、[A-Z]、[0-9]范围内的字符扩展
                        if(ch[i-1] <= ch[i+1]) {
                            int j = ch[i-1] - 'a' + 1;
                            int q = ch[i+1] - 'a';
                            for(;j < q;j++) {
                                System.out.print((char)(j+'a'));
                            }
                        }
                        else {                              //若不满足前面的小于后面
                            System.out.print('-');
                        }
                    }
                    else if((ch[i-1] >= 'A' && ch[i-1] <= 'Z') && (ch[i+1] >= 'A' && ch[i+1] <= 'Z')) {        //判断'-'前后 是否是[a-z]、[A-Z]、[0-9]范围内的字符扩展
                        if(ch[i-1] <= ch[i+1]) {
                            int j = ch[i-1] - 'A' + 1;
                            int q = ch[i+1] - 'A';
                            for(;j < q;j++) {
                                System.out.print((char)(j+'A'));
                            }
                        }
                        else {                              //若不满足前面的小于后面
                            System.out.print('-');
                        }
                    }
                    else if((ch[i-1] >= '0' && ch[i-1] <= '9') && (ch[i+1] >= '0' && ch[i+1] <= '9')) {        //判断'-'前后 是否是[a-z]、[A-Z]、[0-9]范围内的字符扩展
                        if(ch[i-1] <= ch[i+1]) {
                            int j = ch[i-1] - '0' + 1;
                            int q = ch[i+1] - '0';
                            for(;j < q;j++) {
                                System.out.print((char)(j+'0'));
                            }
                        }
                        else {                              //若不满足前面的小于后面
                            System.out.print('-');
                        }
                    }
                    else {
                        System.out.print('-');
                    }
                }
                else {
                    System.out.print(ch[i]);
                }
            }
            if(ch.length -1 != 0) {
                System.out.print(ch[i]);
            }
            System.out.println();
        }
        input.close();
    }
}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程