java上机实验

我们使用的教材是《java简明教程(第三版)》- 皮德常

符号化逆序输出

第六章第四题

盲目分析

  又到了小学生做作业的时候了,这一次我们接到上级任务,需要我们写一个程序,使用StringTokenizer类保存我们输入的文本string。那么好了,装13时已到!做好做好。

  • 我们需要用到之前使用过的输入输出,为了我们自定义本文输入。
  • 逆序输出的话,我们想到什么数据结构呢?先进后出的数据结构stack(栈)

暴力破解

import java.util.Scanner;
import java.util.Stack;
import java.util.StringTokenizer;

public class SentenceToTokens {
    public static void main(String[] arg){
        String line;
        Stack<String> stack = new Stack<>();
        StringTokenizer token;

        Scanner cin = new Scanner(System.in);
        System.out.println("Please input a line:");
        line = cin.nextLine();
        token = new StringTokenizer(line);
        cin.close();

        System.out.println("There are " + token.countTokens() + " elements");
        while(token.hasMoreTokens()){
            stack.push(token.nextToken());
        }
        while(!stack.empty()){
            System.out.print(stack.peek() + "  ");
            stack.pop();
        }
    }
}

运行实例:
文本逆序符号化

By the way, StringTokenizer类(位于java.util包中)可以将字符串分解为组成字符串的语言符号(语言符号是由音、义的结合构成的)。substringsplit也用于分割字符串,但是StringTokenizer的效率比前两者高,它继承自Enumeration接口。StringTokenizer不会区分对象函数数组、或引证字符串

  • new StringTokenized(line)生成一个StringTokenized对象,它封装了许多实例变量和方法。
  • countTokens()方法是确定符号化对象中包含的符号个数。
  • hasMoreTokens()是一个boolean类型的方法,用于确定对象是否还带有符号。
  • nextToken()方法用于从对象中取得下一个符号,取得以后符号指示器自动向后移动。

爱狂笑的孩子运气不会差