题目是力扣的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();
}
本文介绍了如何使用栈和StringBuilder实现只反转字符串中字母的Java方法,通过遍历字符数组,对字母进行入栈和出栈操作,非字母字符保持原样。
447

被折叠的 条评论
为什么被折叠?



