对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。 在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符(

字符串倒序输出,单词不倒序
题目
对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成,可能含有非法字符
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
第一种方法

思路解析
1.我们可以采用正则表达式把字符串分隔成为字符串数组
2.接着我们再倒序输出字符串数组
3.在注意最后一个字符串数组,可能是空格

public class ReverseStr2 {

	public static void main(String args[]) {
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			String str = sc.nextLine();
			String[] strArray = str.split("[^a-zA-Z]+");
			for (int i = strArray.length - 1; i >= 2; i--) {
				System.out.print(strArray[i] + ' ');
			}
			// 如果字符串数组的第一个元素是空串,那么下标为1的元素就是最后一个要输出的元素,末尾不要再加空格
			if (strArray[0].length() == 0)
				System.out.println(strArray[1]);
			else
				System.out.println(strArray[1] + ' ' + strArray[0]);
		}
	}

}

你可能感兴趣的:(考研复试,c++算法)