问题描述

  相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了。今天,徐老师想测试一下大家对于字符串操作的掌握情况。徐老师自己定义了1,2,3,4,5这5个参数分别指代不同的5种字符串操作,你需要根据传入的参数,按照徐老师的规定,对输入字符串进行格式转化。

  徐老师指定的操作如下:

  1 表示全部转化为大写字母输出,如abC 变成 ABC

  2 表示全部转换为小写字母输出,如abC变成abc

  3 表示将字符串整个逆序输出,如 abc 变成 cba

  4 表示将字符串中对应的大写字母转换为小写字母,而将其中的小写字母转化为大写字母输出,如 abC变成ABc

  5表示将全部转换为小写字母,并将其中所有的连续子串转换为对应的缩写形式输出,比如abcD 转换为a-d,其次,-至少代表1个字母,既如果是ab,则不需要转换为缩写形式。

输入格式

  一共一行,分别是指代对应操作的数字和字符串,两者以空格分隔,字符串全部由英文字母组成

输出格式

  输出根据上述规则转换后对应的字符串

样例输入

5 ABcdEE

样例输出

a-ee

数据规模和约定

  输入字符串长度最长为200。

---------------------

  1. import java.util.Scanner;
  2. public class 字符串变换 {//65 97
  3. public static void main(String[] args) {
  4. Scanner sc = new Scanner(System.in);
  5. int n = sc.nextInt();
  6. String s = sc.next();
  7. sc.close();
  8. if(n==1){
  9. System.out.println(s.toUpperCase());
  10. }
  11. else if(n==2){
  12. System.out.println(s.toLowerCase());
  13. }
  14. else if(n==3){
  15. StringBuilder sb = new StringBuilder(s);
  16. sb.reverse();
  17. System.out.println(sb);
  18. }
  19. else if(n==4){
  20. char [] num = s.toCharArray();
  21. for (int i = 0; i < num.length; i++) {
  22. if(num[i]>=97){
  23. System.out.print((char)(num[i]-32));
  24. }
  25. else{
  26. System.out.print((char)(num[i]+32));
  27. }
  28. }
  29. }
  30. else{
  31. s=s.toLowerCase();
  32. int temp=1;
  33. char [] num = s.toCharArray();
  34. for (int i = 0; i < num.length-1; i++) {
  35. if(num[i]==num[i+1]-1){
  36. if(temp==1) System.out.print(num[i]);
  37. temp++;
  38. }
  39. else{
  40. if(temp<=2)
  41. System.out.print(num[i]);
  42. else
  43. System.out.print("-"+num[i]);
  44. temp=1;
  45. }
  46. }
  47. if(temp<=2)
  48. System.out.print(num[num.length-1]);
  49. else
  50. System.out.println("-"+num[num.length-1]);
  51. }
  52. }
  53. }
  1. import java.util.Scanner;
  2. public class Main{
  3. public static void main(String[] args) {
  4. Scanner sc=new Scanner(System.in);
  5. int n=sc.nextInt();
  6. String str=sc.next();
  7. switch (n) {
  8. case 1:{
  9. System.out.println(str.toUpperCase());
  10. break;
  11. }
  12. case 2:{
  13. System.out.println(str.toLowerCase());
  14. break;
  15. }
  16. case 3:{
  17. char[] c=str.toCharArray();
  18. for(int i=c.length-1;i>=0;i--) {
  19. System.out.print(c[i]);
  20. }
  21. break;
  22. }
  23. case 4:{
  24. StringBuilder strb=new StringBuilder();
  25. for(int i=0;i<str.length();i++) {
  26. if(str.charAt(i)>=97&&str.charAt(i)<=122) {
  27. strb.append((char)(str.charAt(i)-32));
  28. }else {
  29. strb.append((char)(str.charAt(i)+32));
  30. }
  31. }
  32. System.out.println(strb);
  33. break;
  34. }
  35. case 5:{
  36. str=str.toLowerCase();
  37. char [] shu = str.toCharArray();
  38. String st = "";
  39. int a = 0,b=0;
  40. if(shu.length>2){
  41. for (int i = 0; i < shu.length-1; i++) {
  42. if(shu[i+1]-shu[i]==1) {
  43. if(i+1==shu.length-1) {
  44. if(i-b<2) {
  45. }
  46. if(a==1) {
  47. st+="-";
  48. }
  49. if(shu[i]-shu[i-1]!=1) {
  50. st+=shu[i];
  51. }
  52. st+=shu[i+1];
  53. continue;
  54. }
  55. if(a==0) {
  56. st+=shu[i];
  57. b = i;
  58. }
  59. a=1;
  60. continue;
  61. }
  62. else {
  63. if(i-b<2) {
  64. st+=shu[i];
  65. a=0;
  66. continue;
  67. }
  68. a=0;
  69. st+="-";
  70. st+=shu[i];
  71. }}
  72. System.out.println(st);
  73. }
  74. else {
  75. System.out.println(str);
  76. }
  77. // int sum=0,flag=0;
  78. // str=str.toLowerCase();
  79. // StringBuilder strb=new StringBuilder();
  80. // strb.append(str.charAt(0));
  81. // if(str.length()>=2) {
  82. // for(int i=1;i<str.length()-1;i++) {
  83. // if(str.charAt(i+1)-str.charAt(i)==1) {
  84. // if(sum==0) {
  85. // strb.append(str.charAt(i));
  86. // flag=0;
  87. // }
  88. // sum++;
  89. // }else {
  90. // if(sum>1) {
  91. // strb.append("-"+str.charAt(i));
  92. //// strb.append(str.charAt(i+1));
  93. //// i++;
  94. // }else {
  95. // strb.append(str.charAt(i));
  96. // }
  97. // flag=1;
  98. // sum=0;
  99. // }
  100. // }
  101. // if(flag==0&&sum>1) {
  102. // strb.append("-");
  103. // }
  104. // strb.append(str.charAt(str.length()-1));
  105. // }
  106. // System.out.println(strb);
  107. // break;
  108. }
  109. default:
  110. break;
  111. }
  112. }
  113. }

JAVA-蓝桥杯-算法训练-字符串变换的更多相关文章

  1. Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)

    ** 算法训练 字符串的展开 ** 题目: 在初赛普及组的"阅读程序写结果"的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于"d-h" ...

  2. Java实现 蓝桥杯 算法训练 字符串长度(IO无敌)

    试题 算法训练 字符串长度 问题描述 输入一个字符串,输出其长度. 输入格式 输入一个字符串 输出格式 输出字符串长度 样例输入 一个满足题目要求的输入范例. HelloWorld 样例输出 10 数 ...

  3. Java实现 蓝桥杯 算法训练 字符串合并

    试题 算法训练 字符串合并 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 输入两个字符串,将其合并为一个字符串后输出. 输入格式 输入两个字符串 输出格式 输出合并后的字符串 样例 ...

  4. Java 蓝桥杯 算法训练(VIP) 最大体积

    最大体积 问题描述 每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积. 假如每个物品有无限件可用,那么有些体积是永远也装不出来的. 为了尽量装满背包,附中的OIER想要研究一下 ...

  5. Java蓝桥杯 算法训练 复数归一化

    算法提高 复数归一化 时间限制:1.0s 内存限制:512.0MB 编写函数Normalize,将复数归一化,即若复数为a+bi,归一化结果为a/sqrt(aa+bb) + ib/sqrt(aa+b* ...

  6. Java 蓝桥杯 算法训练 貌似化学

    ** 貌似化学 ** 问题描述 现在有a,b,c三种原料,如果他们按x:y:z混合,就能产生一种神奇的物品d. 当然不一定只产生一份d,但a,b,c的最简比一定是x:y:z 现在给你3种可供选择的物品 ...

  7. 蓝桥杯 算法训练 ALGO-143 字符串变换

    算法训练 字符串变换   时间限制:1.0s   内存限制:256.0MB 问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌 ...

  8. Java实现 蓝桥杯 算法训练 第五次作业:字符串排序

    试题 算法训练 第五次作业:字符串排序 问题描述 输入一个小写字符串,按从小到大的顺序输出. 输入格式 bcaed 输出格式 abcde 顶格输出,中间没有空格 样例输入 一个满足题目要求的输入范例. ...

  9. Java实现 蓝桥杯 算法训练 猴子吃包子(暴力)

    试题 算法训练 猴子吃包子 问题描述 从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同:肉包每秒钟吃x个:韭菜包每秒钟吃y个:没有馅的包子每秒钟吃z个:现在有x1个肉 ...

随机推荐

  1. 【Hadoop离线基础总结】MapReduce参数优化

    MapReduce参数优化 资源相关参数 这些参数都需要在mapred-site.xml中配置 mapreduce.map.memory.mb 一个 MapTask 可使用的资源上限(单位:MB),默 ...

  2. u-boot 移植(一)编译环境搭建

    u-boot 移植(一)编译环境搭建 soc:s3c2440 board:jz2440 uboot:u-boot-2016.11 toolchain:gcc-linaro-7.4.1-2019.02- ...

  3. 【Poj-3693】Maximum repetition substring 后缀数组 连续重复子串

    POJ - 3693 题意 SPOJ - REPEATS的进阶版,在这题的基础上输出字典序最小的重复字串. 思路 跟上题一样,先求出最长的重复次数,在求的过程中顺便纪录最多次数可能的长度. 因为sa数 ...

  4. 风扇转速通过FPGA采样

    1.风扇最大转速16000RPM,那么每一转需要时间60S/16000=0.00375S=375*10^4ns=T=T1+T2+T3+T4: 2.采样0.6S内的风扇detect信号的上升沿个数:0. ...

  5. 生产者消费者问题中的同步机制JAVA设计和实现

    目录 问题描述 问题分析 利用记录型信号量解决 运行环境 实现思路 代码实现 运行截图 过程中出现的问题和注意点 利用AND信号集解决 运行环境 实现思路 代码实现 运行截图 问题描述 若干进程通过有 ...

  6. [hdu4627 The Unsolvable Problem]数论

    题意:给一个数n,找一个正整数x<n,使得x和n-x的最小公倍数最大. 思路:显然x和n-x越接近越好,gcd必须为1(贪心).从大到小考虑x,如果n为奇数,则答案就是x=n/2,如果n为偶数, ...

  7. angular 实现依赖注入

    1:首先获取module对象var myAppModule = angular.module('myApp', []); 2:定义对象(类似spring中xml声明bean对象<bean id= ...

  8. java -类加载器与反射

    类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. l  加载 就是指将class文件读入内存,并为之创建一个Class ...

  9. python--集合和文件基本操作

    集合 # 集合天生就能去重,集合也是无序的  集合也是{ }  但是空集合定义特殊s=set()  #空集合s2 = set('1234445566778')print(s2) s3 = {'1',' ...

  10. 程序员的踩坑经验总结(一):如何把Bug的偶现变必现

    程序员的踩过的坑也是可以分类的,很常见又很难解决的一类是偶然的现象,表现起来比较怪异. 而把一个问题Bug的偶现变成必现,是开发人员的一种能力.我认为也应该是测试人员的一种能力,但是各个公司要求不一样 ...