单词倒序(java)

如何将一串单词组成的字符串倒序呢?如:"  we go to school" 变成"school to go we  "java代码实现:
public static String rever(String str) {
        //这样写有一个问题就是 如果字符串最后面有空格split()方法是不能把最后的空格分出来的。 字符串前面有空格没关系
        StringBuilder sb = new StringBuilder();//用于接收莫表字符串
        String[] strings = str.split(" ");//按照空格split
        //遍历数组
        for (int i = strings.length - 1; i >= 0; i--) {
            if (i != 0) {
                sb.append(strings[i] + " ");
            }else {
                sb.append(strings[i]);
            }
        }
        return sb.toString();
    }

如果单词组成的字符串里面有一些',','.'如何处理呢?如: " we go,to school." 变成".school to,go we "java实现如下:
public static String rever(String str) {
    StringBuilder tempStr = new StringBuilder();//临时存储字符串
    StringBuilder goalStr = new StringBuilder();//最终存储字符串
    for (int i = str.length() - 1; i >= 0; i-2019-07-142019-07-142019-07-1410:27:59-) {
        char c = str.charAt(i);
        //处理特殊字符串 如果有其他特殊字符 可以家在if条件里面
        if (c == ' ' || c == ',' || c == '.') {
            goalStr.append(tempStr);//将临时存储的字符串放进目标存储的字符串中
            goalStr.append(c);//将特殊字符放进目标字符串中
            tempStr.delete(0, tempStr.length());//清空临时字符串 待下次存储
        } else {
            tempStr.insert(0, c);//将非特殊字符放进临时字符串中 等单词拼接完成 一起放进目标字符串中
        }
    }
    //防止最前面没有特殊字符 最前面的一个单词放不进去
    if (!tempStr.equals("")) {
        goalStr.append(tempStr);
    }
    return goalStr.toString();
}

 

点赞