200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > C语言 删除多余空格 首字母大写 字符串——去除多余空格和首字母大写

C语言 删除多余空格 首字母大写 字符串——去除多余空格和首字母大写

时间:2021-07-16 15:20:09

相关推荐

C语言 删除多余空格 首字母大写 字符串——去除多余空格和首字母大写

题目描述:

输入一个由若干单词组成的字符串(长度小于等于2000),然后删除字符串的首尾空格,如果串中有多于一个以上空格,则只保留一个空格,

同时,请将字符串中单词的首字母转换为大写,如果本身是大写,不要转换。

输入:

测试数据有多组,每组输入一个字符串。

输出:

对于每组输入,删除字符串中多余空格,首字母大写,然后输出。

样例输入:

3

word many word

abcd xyz

xyz

样例输出:

Have Many Words

Abcd 123 Xyz

Xyz

分析:每组输入一个,我们可以边输入边处理,就不用先把所有输入字符串存储到一个容器再回头来处理了。所以,考虑用StringBuffer。

看代码:

/**

* @author sun

* 创建时间:3月28日下午3:04:58

*/

import java.util.Scanner;

public class Demo3 {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int n = Integer.parseInt(in.nextLine());

for(int i=0;i

String ss = in.nextLine();

String s = ss.trim();//去除字符串首尾的空格

StringBuffer sb = new StringBuffer(s);//每输入一个字符串就放入容器中

Do(sb);//足以调用方法的位置,每输入一个字符串就处理该字符串

}

}

static void Do(StringBuffer sb){

for(int i=1;i

if(sb.charAt(i-1)==' ' && sb.charAt(i)==' '){

sb.deleteCharAt(i);

i--;//请注意一定不能让指针挪动到下一位,每删除一位,后面所有元素会向前移位,

}//此时i已经指向下一位新的元素,如果不保留i,三个连续的空格只会删掉一个(中间那个)

}

//接下来判断开始位和空格后第一位是否为字母,并转换为大写字母

if(sb.charAt(0)>='a'&&sb.charAt(0)<='z')

sb.setCharAt(0, (char)(sb.charAt(0)-32));

for(int i=1;i

if(sb.charAt(i-1)==' ' && (sb.charAt(i)>='a'&&sb.charAt(i)<='z')){

sb.setCharAt(i, (char)(sb.charAt(i)-32));

}

}

System.out.println(sb.toString());

}

}

/*运行情况,每输入一行就解决一行

3

word many word

Word Many Word

abcd xya

Abcd Xya

xyz

Xyz

*/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。