思路:将字符串分割 放入栈* 再拼接成指定格式字符串(思路正确)
难点:对split()不熟练,不清除相邻分隔符会做何种处理;对栈声明以及基本方法不熟练
知识点总结:
1.split()
特殊情况
- 字符串开头有分隔符:开头产生一个空字符串,其余正常。
- 分隔符相互紧挨着:每两个分隔符产生一个空字符串,若有三个分隔符则会有2各空字符,以此类推。
- 字符串最尾部有分割符:末尾产生一个空字符串,其余正常。
2. Stack
Stack stack = new Stack();
*标准解答中声明栈:
Deque<String> stack = new ArrayDeque<String>();
ArrayDeque是 Deque接口的一个实现,使用了可变数组,所以没有容量上的限制。同时, ArrayDeque是线程不安全的,在没有外部同步的情况下,不能再多线程环境下使用。
ArrayDeque是 Deque的实现类,可以作为栈来使用,效率高于 Stack;也可以作为队列来使用,效率高于 LinkedList。
ArrayDeque 是 Java 集合中双端队列的数组实现,双端队列的链表实现(LinkedList)。
需要注意的是, ArrayDeque不支持 null值。
>> 所以可以通过使用ArrayDeque来代替Stack来提高效率
3.拼接字符串我使用String 可以用StringBuffer来优化