处理了一个以前写的java小程序的异常
之前用java做过0-99的数字和英文之间的翻译,输入数字就会翻译成英文,输入英文会翻译成数字,比如输入56 输出fiftysix 输入fiftysix 输出56,
发现这会有一个异常,当输入不符合格式时,比如英文和数字混输,或者输入标点会报NumberFormatException异常,现在捕捉了这个异常,顺便把
输入越界也加入了异常,比如输入100时 报"输入越界!"。
以下附上代码:
package TranslateClass;
import java.util.Scanner;
abstract class inter
{
String x[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
String y[]={"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
String z[]={"twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"};
abstract void Translate()throws OutException;
}
class OutException extends Exception
{
OutException(String msg)
{
super(msg);
}
}
class TransEnglish extends inter//数字翻译成英文
{
int a;
TransEnglish(int a)
{
this.a=a;
}
public void Translate()throws OutException
{
if(a>=0&&a<=9)
System.out.println(a+" 翻译成英文为:\n"+x[a]);
else if(a>9&&a<=19)
System.out.println(a+" 翻译成英文为:\n"+y[a%10]);
else if(a>19&&a<=99)
System.out.println(a+" 翻译成英文为:\n"+z[a/10-2]+"-"+x[a%10]);
else
throw new OutException("输入的数字"+a+"不在0-99之间!");
}
}
class TransCout extends inter//英文翻译成数字
{
String a;
int i;
int j=0;
TransCout(String a)
{
this.a=a;
}
public void Translate()throws OutException
{
for(i=0;i<=7;i++)
{
if(a.contains(z[i]))
j=(i+2)*10;
if(a==z[i])
{
System.out.println(a+" 翻译成数字为\n"+(i+2)*10);
return;
}
}
for(i=0;i<=9;i++)
{
if(a==y[i])
{
System.out.println(a+" 翻译成数字为\n"+i+10);
return;
}
else if(a.contains(x[i]))
{
System.out.println(a+" 翻译成数字为\n"+(j+i));
return;
}
}
throw new OutException("输入的英文"+a+"不在zero 到 ninety-nie之间!");
}
}
class Translate
{
private Translate(){}
private static Translate s= new Translate();
public static Translate getTranslate()
{
return s;
}
public void Trans()
{
System.out.print("请输入你想翻译的数字或英文(仅限0-99):");
Scanner scanf=new Scanner(System.in);
try//解决输入格式异常
{
String Str=scanf.next();
if(Str.charAt(0)>=48&&Str.charAt(0)<=57)
{
int cot=Integer.parseInt(Str);
new TransEnglish(cot).Translate();
}
else
new TransCout(Str).Translate();
}
catch(NumberFormatException e)
{
System.out.println("输入错误!");
System.out.println(e.toString());
}
catch(OutException o)
{
System.out.println("输入越界!");
System.out.println(o.toString());
}
finally
{
System.out.println("翻译结束。");//断开服务器连接
}
}
public static void main(String[] args)
{
Translate T = Translate.getTranslate();
T.Trans();
//new Translate().Trans();
}
}
处理了一个以前写的java小程序的异常的更多相关文章
- 输出多行字符的一个简单JAVA小程序
public class JAVA { public static void main(String[] args) { System.out.println("-------------- ...
- 浏览器兼容java小程序配置说明
最近在使用的一个web应用系统是内嵌了java小程序,遇到了各种浏览器兼容性问题,现梳理如下: 1.通过以下链接检测当前电脑是否已经安装有java https://java.com/zh_CN/dow ...
- python(三)一个文件读写操作的小程序
我们要实现一个文件读写操作的小程序 首先我们有一个文件 我们要以"============"为界限,每一个角色分割成一个独立的txt文件,按照分割线走的话是分成 xiaoNa_1. ...
- 框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口
框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口. 与Frame不同,Applet是在网页中显示的,也可以通过添加Panel进行组件布局. package TomAwt; im ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- 一个小时快速搭建微信小程序教程
「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试.可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面).本以为没有 AppID 这个月就与小程序无缘了,庆幸的 ...
- 2015.11.27初识java一集简单的java小程序
JAVA配置环境变量方法: 1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME变量值:D:\Java\jdk1.7.0_ ...
- java的数据类型,几个java小程序
1:求圆的面积 还好看了c++,不然直接看这课件还真是看不懂……加油吧 要从键盘读入数据可以用Scanner类的nextlnt()或者nextDouble()方法,首先创建Scanner类的一个实例, ...
- 一个小时快速搭建微信小程序
「小程序」这个划时代的产品发布快一周了,互联网技术人都在摩拳擦掌,跃跃欲试.可是小程序目前还在内测,首批只发放了 200 个内测资格(泪流满面).本以为没有 AppID 这个月就与小程序无缘了,庆幸的 ...
随机推荐
- crontab基础笔记 思维导图版
直接上图吧----------------------------------------------------------------------------------------------- ...
- hadoop排序 -- 全排序
目录 一.关于Reducer全排序 1.1. 什么叫全排序 1.2. 分区的标准是什么 二.全排序的三种方式 2.1. 一个Reducer 2.2. 自定义分区函数 2.3. 采样 一.关于Reduc ...
- C++的一些关键字用法
const 这个关键字真是太常用了, 所以干脆总结一下. int const a = 8; //定义一个int常量a, 不能再给a赋值了 const int a = 8; //和上面一样 int co ...
- 前端框架---jQuery---一分钟下载使用
这里通过自己手动的方式“做”一个jQuery来使用,需要5步 1. 访问 https://jquery.com 2. 点击download 3. 拉到最下方,点击 JQuery CDN 4. 得到所有 ...
- 生成并调用so动态库
本文更新于2019-01-03. 生成库 头文件fn.h如下: #ifndef __FN_H__ #define __FN_H__ #ifdef __cplusplus extern "C& ...
- PMP考试总结
9月8日参加完PMP考试,从上第一次课7月14日到考试,历经56天.5次面授课,3次模考,对整个项目管理有了清晰的认识和学习.感觉上课是一回事,做题又是一回事,考试又是另外一回事.考试一共4个小时,从 ...
- 20155216 2016-2017-2 《Java程序设计》第七周学习总结
20155216 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 认识Lambda表达式语法 Lambda表达式不需要也不允许使用throws关键字来声明可能 ...
- 20155220 实验三 敏捷开发与XP实践 实验报告
20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 20155305 2016-2017-2 《Java程序设计》实验四 Android程序开发基础
实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android.组件.布局管理器的使用: 掌握Android中事件处理机制 实验 ...
- 20155331 2016-2017-2 《Java程序设计》第10周学习总结
20155331 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就 ...