单词倒序(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(); }