问题描述

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

    原文排版远些乱,整理了一下. #include <reg51.h> #define XON 0x11 /*串口流控制符 启动*/ #define XOFF 0x13 /*串口流控制符 中断 ...

  2. ":-"的用法举例

    例子1: #!/bin/bash A=aaa C=${A:-bbb} echo $C 输出结果:aaa 例子2: #!/bin/bash A="" C=${A:-bbb} echo ...

  3. 05JAVA基础方法

    一.格式 函数有返回值 public static 返回类型 方法名(参数类型 形参1,参数类型 形参2){ 函数体; return 返回值;//返回值必须是定义的返回类型 } 函数没有有返回值 pu ...

  4. python pip下载设置

    安装命名为 pip install -i 网址 所需要安装的库名例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests ...

  5. day_02~day_09的Python语法基础

    Python基础学习 day_02 使用方法修改字符串的大小写 将字符串首字母变成大写 >>> name = "ada lovelace" >>> ...

  6. 【Jmeter学习】【第一节】【Jmeter的安装】

    转载至https://www.cnblogs.com/qinlangsky/p/11941230.html 写的非常详细

  7. ql的python学习之路-day1

    写在前面的话:万事开头难,算是系统学习python的一个月了吧,总该写点什么来记录一下,之前看老男孩day1的视频没有开通博客,这次给补上,对于学python还是要好好努力,不能半途而废,还是那句老话 ...

  8. 2.7 Go交叉编译

    Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下. Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED= ...

  9. linux常用命令---中英文设置

    中英文设置 LANG变量 echo $LANG---------查看当前编码 locale -----------------设置之后可查看详细信息 中文设置 # vim /etc/profile.d ...

  10. Django模板之模板标签

    标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加载其后的变量将使用到的额外信息到模版中. 一些标签需要开始和结束标签 (例如:{% tag %} ...标签 内容 ... ...