解题思路:
规则简述 数字和字母规则相同。 1, d-e => de; e-d =>e-d 如果右大于左一个,则去掉-号,否则不变。 2, p1=1,填充小写 p1=2,填充大写 p1=3,数字和字母都填充“*” 3, p2=k,填充k次 4, p3=1,顺序填写, p3=2,逆序填写
注意事项:
测试数据很刁钻。有连续两个"--",或者开头和结尾有'-'。
题目中并没有提示这些,但我仍然觉得它是一个关于java字符串方面的好题,同时对于程序鲁棒性也有一定的考验。
参考代码:
import java.util.Scanner; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); int p1=sc.nextInt(); int p2=sc.nextInt();//k int p3=sc.nextInt(); String str=sc.next(); for (int i = 0; i < str.length(); i++) { char item_=str.charAt(i);// '-' if (i==0 && item_=='-') {//意外情况 System.out.print(item_); continue; } if (i==str.length()-1 && item_=='-') {//意外情况 System.out.print(item_); continue; } if (item_=='-') { char item_left=str.charAt(i-1); //'-'左字符 char item_right=str.charAt(i+1); //'-'右字符 if (item_right==item_left+1) { continue; } if (item_right<=item_left || Character.isDigit(item_left)!=Character.isDigit(item_right) || Character.isUpperCase(item_left)!=Character.isUpperCase(item_right) || Character.isLowerCase(item_left)!=Character.isLowerCase(item_right)) { //当-前后类型不同时,也是原样输出。。。 System.out.print(item_); continue; } int n=item_right-item_left-1;//需要循环字符个数 if (p1==3) { for (int j = 0; j <n; j++) { for (int k = 0; k <p2; k++) { System.out.print('*'); } } }else if (p1==2 || p1==1) { char temp=item_left; String tempStr=""; for (int j = 0; j <n; j++) { temp++; for (int k = 0; k <p2; k++) { tempStr+=temp; } } if (p3==2) {//反序 tempStr=new StringBuffer(tempStr).reverse().toString(); } if (p1==2) { tempStr= tempStr.toString().toUpperCase(); }else if (p1==1) { tempStr= tempStr.toString().toLowerCase(); } System.out.print(tempStr); } }else { System.out.print(item_); } } } }
0.0分
1 人评分
(格式错误) qq290048663 碰巧告知我吧浏览:678 |
母牛的故事 (C语言代码)浏览:1748 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:744 |
简单的a+b (C语言代码)浏览:676 |
A+B for Input-Output Practice (C++代码)浏览:632 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:790 |
C二级辅导-阶乘数列 (C语言代码)浏览:736 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:467 |
【计算球体积】 (C语言代码)浏览:1158 |
【偶数求和】 (C语言代码)浏览:460 |