ssd3:Practical Quiz 1 SecondsCalculator

SecondsCalculator

import  java.io.*;
import  java.util.*;

public class SecondsCalculator  {
 
 public static void main(String[] args) throws IOException  {
  
  BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
  String readLine = stdIn.readLine();      //读取一个文本行
  StringTokenizer st=new StringTokenizer(readLine,":");      //以“:”为分隔符分隔文本行readLine
  int hour = 0;
  int min = 0;
  int sec = 0;
  try
  {
   if(st.countTokens() == 3) {
    hour=Integer.parseInt(st.nextToken());     //返回分隔符处的下一个标记
    min=Integer.parseInt(st.nextToken());
    sec=Integer.parseInt(st.nextToken());
    if(sec>=60 || min>=60 || hour>=24 || sec<0 || min<0 || hour<0)
     System.out.println("Invalid input");
    else
     System.out.println("Total seconds is "+(hour*3600+60*min+sec));
   }
   else
    System.out.println("Invalid input");
  }
  catch(NumberFormatException e)      //捕获输入数据类型的异常
  {
   System.out.println("java.lang.NumberFormatException: " + e.getMessage());
  }
  
 }
}

考察:

class StringTokenizer

构造函数:

public StringTokenizer(String str, String delim)

为指定字符串构造一个 string tokenizer。delim 参数中的字符都是分隔标记的分隔符。分隔符字符本身不作为标记。

public StringTokenizer(String str)

为指定字符串构造一个 string tokenizer。tokenizer 使用默认的分隔符集 " /t/n/r/f",即:空白字符、制表符、换行符、回车符和换页符。分隔符字符本身不作为标记。

 

方法:

public int countTokens()

计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数。当前位置没有提前。

public String nextToken(String delim)

返回此 string tokenizer 的字符串中的下一个标记。首先,字符集被更改为字符串 delim 中的字符,该字符集被认为是 StringTokenizer 对象的分隔符。接着返回字符串中当前位置之后的下一个标记。当前位置被提前到所识别的标记前。进行此调用后新的分隔符集仍然保持默认值。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值