如何将一串单词组成的字符串倒序呢?如:" 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();
}