黑马程序员技术交流社区

标题: 练习三十五:使用StringTokenizer类逆序输出字符串 [打印本页]

作者: maxwell247    时间: 2015-9-28 21:18
标题: 练习三十五:使用StringTokenizer类逆序输出字符串

从网上找到一份编程练习题,我决定将里面的题目全都做一遍。


/*
        题目:请使用StringTokenizer类,将字符串按单词拆分,然后逆序输出。
        “2008年 奥运会 中国 金牌冠军” --> “金牌冠军 中国 奥运会 2008年”
*/

/*
        分析:StringTokenizer这个类没见过,查了下API。
        这个类还是比较简单的。
        常用方法:
                StringTokenizer(String str) -- 为指定字符串构造一个 string tokenizer。Tokenizer使用默认的分隔符集 " \t\n\r\f"
                boolean hasMoreTokens() -- 测试此 tokenizer 的字符串中是否还有更多的可用标记。
                String nextToken() -- 返回此 string tokenizer 的下一个标记。
        看起来和迭代器的使用很像,不过它的用处却不大了。现在都建议使用String的split()方法,或java.util.regex包。
        昨天看到了ListIterator接口,正好使用一下。
*/

import java.util.StringTokenizer;
import java.util.ArrayList;
import java.util.ListIterator;

class StringTokenizerDemo {
        public static void main(String[] args) {
                StringTokenizer st=new StringTokenizer("2008年 奥运会 中国 金牌冠军");
                ArrayList<String> lists=new ArrayList<String>();

                //分割字符串,Tokenizer使用默认的分隔符集 " \t\n\r\f"。
                while(st.hasMoreTokens()){
                        lists.add(st.nextToken());
                }
               
                //ListIterator的特殊遍历List集合的方式
                ListIterator<String> it=lists.listIterator();
                while(it.hasNext()){
                        it.next();
                }
                while(it.hasPrevious()){
                        System.out.print(it.previous()+" ");
                }
                System.out.println();
        }
}

/*
        输出结果:
        金牌冠军 中国 奥运会 2008年
*/






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2