字符串倒序输出,单词不倒序
题目
对字符串中的所有单词进行倒排。
说明:
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]);
}
}
}