A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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


/*
        题目:请使用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年
*/

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马