字串擴充套件
阿新 • • 發佈:2019-02-13
Problem Description
Tom有些時候為了記錄的方便,常常將一些連續的字元用擴充套件符'-'簡單表示。比如abcdefg可以簡寫為a-g,即用起始的字元和終止字元中間加上一個擴充套件符'-'來表示這個字串。但是為了處理的方便,Tom又必須將這些我們簡單記法擴充套件成原來的字串。很明顯要是人工來做的話必定很麻煩,Tom知道計算機可以幫助他完成這個任務,但是他卻不會程式設計,這的確讓他很上火。他知道今天是山東理工大學第三屆ACM校賽的日子,屆時來自全校的程式設計愛好者都會來參加比賽,他很興奮,因為這個困惑他良久的問題終於要被解決了。給你一個含有擴充套件符'-'的字串,你的任務就是將他還原成原來的字串。要求是隻處理
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
code:
import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner reader = new Scanner(System.in); int t; t = reader.nextInt(); while(t-->0) { String str = reader.next(); String result = ""; for(int i = 0;i<str.length();i++) { if(str.charAt(i) == '-'&&i!=0&&i!=str.length()-1) { if(str.charAt(i-1)<=str.charAt(i+1)&&((str.charAt(i-1)>='0'&&str.charAt(i+1)<='9')||(str.charAt(i-1)>='a'&&str.charAt(i+1)<='z')||(str.charAt(i-1)>='A'&&str.charAt(i+1)<='Z'))) { for(int j = str.charAt(i-1)+1;j<str.charAt(i+1);j++) { result+=(char)j; } } else result+='-'; } else result+=str.charAt(i); } System.out.println(result); } } }