写⼀个函数,将⼀个字符串中的单词反转过来,单词的定义是:完全由字⺟组成且由空格分开的字符串。例如下⾯的字符串:“ a hello1 abc good!”,其中“a”和“abc”是单词,⽽“hello1”和“good!”不是单词(原因是这两个字符串中包含⾮字⺟的字符1和!)。反转过来的结果就是“ a hello1 cba good!”
思路写在代码中
public String reverseWords(String words){
String[] word = words.split(" ");//按空格划分
StringBuilder res = new StringBuilder();
for (String str:word) {
if((str.split("^[a-zA-Z]+$")).length == 0){//按"单词"划分,如果长度为0则说明只有字母没有其他字符
res.append(new StringBuilder(str).reverse());//将该单词反转,reverse()方法为StringBuilder对象的方法,实现字符串反转
res.append(" ");
continue;
}
res.append(str+" ");
}
if(" ".equals(words.charAt(words.length()-1))){//截取字符串,如果最后一个字符是空,则少截一个,不为空则返回全部
return res.substring(0,res.length()-1);
}else{
return res.substring(0);
}
}