题目是力扣的917题目,叫我们只反转字符串里的字母
1、我们可以用一个栈,将所有字母推入进去,等会儿出栈字母就已经达到反转字母的效果了
2、然后由于字符串操作频繁,我们可以用一个StringBuilder来储存反转后的结果
3、最后再转换为String类型即可
代码如下
public String reverseOnlyLetters(String s) {
//判空
if(s == null || s.length() == 0){
return s;
}
Stack<Character> letters = new Stack();
for(char c : s.toCharArray()){
//判断是否为字母
if(Character.isLetter(c)){
letters.push(c);
}
}
StringBuilder ans = new StringBuilder();
for(char c : s.toCharArray()){
if(Character.isLetter(c)){
ans.append(letters.pop());
}else{
ans.append(c);
}
}
return ans.toString();
}