字符串扩展_JAVA
Description
Tom有些時(shí)候?yàn)榱擞涗浀姆奖?#xff0c;常常將一些連續(xù)的字符用擴(kuò)展符’-‘簡單表示。比如abcdefg可以簡寫為a-g,即用起始的字符和終止字符中間加上一個擴(kuò)展符’-‘來表示這個字符串。但是為了處理的方便,Tom又必須將這些我們簡單記法擴(kuò)展成原來的字符串。很明顯要是人工來做的話必定很麻煩,Tom知道計(jì)算機(jī)可以幫助他完成這個任務(wù),但是他卻不會編程,這的確讓他很上火。他知道今天是山東理工大學(xué)第三屆ACM校賽的日子,屆時(shí)來自全校的編程愛好者都會來參加比賽,他很興奮,因?yàn)檫@個困惑他良久的問題終于要被解決了。給你一個含有擴(kuò)展符’-'的字符串,你的任務(wù)就是將他還原成原來的字符串。要求是只處理[a-z]、[A-Z]、[0-9]范圍內(nèi)的字符擴(kuò)展,即只有當(dāng)擴(kuò)展符前后的字符同時(shí)是小寫字母、大寫字母或數(shù)字時(shí)并且擴(kuò)展符前面的字符不大于后面的字符才進(jìn)行擴(kuò)展,其它情況不進(jìn)行擴(kuò)展,原樣輸出。例如:a-R、D-e、0-b、4-B等字符串都不進(jìn)行擴(kuò)展。
Input
第一行是一個正整數(shù)T,表示共有T組測試數(shù)據(jù)(T < 100)。下面的T行,每一行包括一個長度不大于1000的待擴(kuò)展字符串.
Output
每組測試數(shù)據(jù)輸出一行擴(kuò)展后的字符串。
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) {// 如果不是拓展符或者不是字符串起始截止位置(注意起始和截止位置沒有前驅(qū)或后繼)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,然后再判斷后面的是否在同一種字符中(分別是小寫字符,大寫字符,數(shù)字)// 下面輸出時(shí)都是一樣的,所以可以都加在判斷中一次性判斷三種for (int j = ch1 + 1; j < ch2; j++) {System.out.printf("%c", j);}} else {System.out.print("-");} // 注意再拓展字符前后不滿足拓展條件時(shí)需要把拓展字符輸出}}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();}}總結(jié)
以上是生活随笔為你收集整理的字符串扩展_JAVA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eddy的难题_JAVA
- 下一篇: C~K的班级_JAVA