问题描述

  相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了。今天,徐老师想测试一下大家对于字符串操作的掌握情况。徐老师自己定义了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。

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

import java.util.Scanner;

public class 字符串变换 {//65    97
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String s = sc.next();
sc.close();
if(n==1){
System.out.println(s.toUpperCase());
}
else if(n==2){
System.out.println(s.toLowerCase());
}
else if(n==3){
StringBuilder sb = new StringBuilder(s);
sb.reverse();
System.out.println(sb);
}
else if(n==4){
char [] num = s.toCharArray();
for (int i = 0; i < num.length; i++) {
if(num[i]>=97){
System.out.print((char)(num[i]-32));
}
else{
System.out.print((char)(num[i]+32));
} }
}
else{
s=s.toLowerCase();
int temp=1;
char [] num = s.toCharArray();
for (int i = 0; i < num.length-1; i++) {
if(num[i]==num[i+1]-1){
if(temp==1) System.out.print(num[i]);
temp++;
}
else{
if(temp<=2)
System.out.print(num[i]);
else
System.out.print("-"+num[i]);
temp=1;
}
}
if(temp<=2)
System.out.print(num[num.length-1]);
else
System.out.println("-"+num[num.length-1]);
} } }
import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String str=sc.next();
switch (n) {
case 1:{
System.out.println(str.toUpperCase());
break;
} case 2:{
System.out.println(str.toLowerCase());
break;
}
case 3:{
char[] c=str.toCharArray();
for(int i=c.length-1;i>=0;i--) {
System.out.print(c[i]);
}
break;
}
case 4:{
StringBuilder strb=new StringBuilder();
for(int i=0;i<str.length();i++) {
if(str.charAt(i)>=97&&str.charAt(i)<=122) {
strb.append((char)(str.charAt(i)-32));
}else {
strb.append((char)(str.charAt(i)+32));
}
}
System.out.println(strb);
break;
}
case 5:{ str=str.toLowerCase();
char [] shu = str.toCharArray();
String st = "";
int a = 0,b=0;
if(shu.length>2){ for (int i = 0; i < shu.length-1; i++) {
if(shu[i+1]-shu[i]==1) {
if(i+1==shu.length-1) {
if(i-b<2) { }
if(a==1) { st+="-";
}
if(shu[i]-shu[i-1]!=1) { st+=shu[i];
}
st+=shu[i+1];
continue;
}
if(a==0) {
st+=shu[i];
b = i;
}
a=1;
continue;
}
else {
if(i-b<2) {
st+=shu[i];
a=0;
continue;
}
a=0;
st+="-";
st+=shu[i];
}}
System.out.println(st);
}
else {
System.out.println(str);
} // int sum=0,flag=0;
// str=str.toLowerCase();
// StringBuilder strb=new StringBuilder();
// strb.append(str.charAt(0));
// if(str.length()>=2) {
// for(int i=1;i<str.length()-1;i++) {
// if(str.charAt(i+1)-str.charAt(i)==1) {
// if(sum==0) {
// strb.append(str.charAt(i));
// flag=0;
// }
// sum++;
// }else {
// if(sum>1) {
// strb.append("-"+str.charAt(i));
//// strb.append(str.charAt(i+1));
//// i++;
// }else {
// strb.append(str.charAt(i));
// }
// flag=1;
// sum=0;
// }
// }
// if(flag==0&&sum>1) {
// strb.append("-");
// }
// strb.append(str.charAt(str.length()-1));
// }
// System.out.println(strb);
// break;
}
default:
break;
}
} }

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. 字节码编程,Javassist篇一《基于javassist的第一个案例helloworld》

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 目录 @ 目录 目录 一.前言 二.开发环境 三.案例目标 四.技术实现 五.测试结果 1. ...

  2. MATLAB1127(传递函数)

    sys=tf(400,[1,50,0]) sys = 400 ---------- s^2 + 50 s 其中,tf()函数的用法.   传递函数 dsys=c2d(sys,ts,'z') dsys ...

  3. javascript实现checkbox提交submit请求

    javascript实现checkbox提交submit请求 背景:使用django模板中for来形成多个checkbox,需要点击单个checkbox并查询数据触发submit请求到后台,djang ...

  4. ThinkPad BIOS

    ThinkPad-BIOS    如有问题指出 ~谢谢

  5. Spring Cache的基本使用与分析

    概述 使用 Spring Cache 可以极大的简化我们对数据的缓存,并且它封装了多种缓存,本文基于 redis 来说明. 基本使用 1.所需依赖 <dependency> <gro ...

  6. 【基准测试】BenchmarkDotNet介绍

    BenchmarkDotNet 概述 BenchmarkDotNet helps you to transform methods into benchmarks, track their perfo ...

  7. video 全屏,播放,隐藏控件。

    requestFullscreen全屏具体实现 1.进入全屏 function full(ele) { if (ele.requestFullscreen) { ele.requestFullscre ...

  8. PAT 1006 Sign In and Sign Out (25分) 字符串比较

    题目 At the beginning of every day, the first person who signs in the computer room will unlock the do ...

  9. docer run 、docker attach 与 docker exec的区别

    进入容器的方式有以下三种: 使用ssh登陆进容器 使用nsenter.nsinit等第三方工具 使用Docker本身提供的工具 最佳方案为使用Docker本身提供的工具 docker run:创建和启 ...

  10. 让.NetCore程序跑在任何有docker的地方

    一.分别在Windows/Mac/Centos上安装Docker Windows上下载地址:https://docs.docker.com/docker-for-windows/install/(wi ...