问题描述

  相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了。今天,徐老师想测试一下大家对于字符串操作的掌握情况。徐老师自己定义了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. Java的Object.wait(long)在等待时间过去后会继续往后执行吗

    Java的Object.wait(long)在等待时间过去后会继续往后执行吗 Object.wait(long)方法相比于wait,多了个等待时长,那么当等待时长过去后,线程会继续往下执行吗? 单个线 ...

  2. Centos7 使用 Ansible 批量安装中文字体

    需求背景 Centos7 下 Java 生成图片水印时中文乱码,原因是没有安装中文字体. 安装中文字体 以下是基于 Centos7 手动安装中文字体的详细步骤.当测试或者生产环境服务器比较多的时候,建 ...

  3. centos7启动httpd服务失败:Job for httpd.service failed because the control process exited with error code.

    centos7启动httpd命令有两个可以用 service httpd start    systemctl start httpd.service 如果出现如下报错 Job for httpd.s ...

  4. STM32F767ZI NUCLEO144 基于CubeIDE快速开发入门指南

    刚入手的NUCLEO-F767ZI:整合官网资源,理清思路,便于快速进行快发: 文章目录 1 NUCLEO 系列 2 NUCLEO-F767ZI 3 环境搭建 3.1 Keil/IAR安装 3.2 C ...

  5. (数据科学学习手札83)基于geopandas的空间数据分析——geoplot篇(下)

    本文示例代码.数据及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一篇文章中我们详细学习了geop ...

  6. Vue中import用法

    1. 引入第三方插件 第三方常用插件参考https://blog.csdn.net/vbirdbest/article/details/86527886 2. 导入 css 文件 import 'iv ...

  7. React:Component

    web开发由web pages过渡到web app 后,开发的模式也发生了变化,由传统的主张结构.样式.行为分离到现在的组件化,把应用的各个部分看成解耦的部分,每部分自包含js.css和html,以方 ...

  8. Template模式C++实现

    #include <iostream> using namespace std; class AbstractClass { public: void TemplateMethod() { ...

  9. Django启动

    Django启动 (一)CMD中创建启动: 1.配置好django-admin.exe环境变量,切换到项目文件夹路径 切换磁盘:>>>E: 显示文件列表:>>>di ...

  10. java 精确加减

    /** * 提供精确的加法运算. * @param v1 被加数 * @param v2 加数 * @return 两个参数的和 */ public double add(double v1, dou ...