数字与英文单词的转换

来源:互联网 发布:免费开单软件 编辑:程序博客网 时间:2024/04/30 15:14
import java.util.Scanner;//导入一个Scanner包public class Conversion {//---------------------------------------------定义变量------------------------------------------------------    static String x[]={"zero","one","two","three","four","five","six","seven","eight","nine"};static String y[]={"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};static String z[]={"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};static int b;//---------------------------------------------主方法---------------------------------------------------------    public static void main(String [] args)     {    Scanner scan=new Scanner(System.in);    char s='y';    while(s=='y')//循环体,可反复输入数字    {    System.out.println("请输入一个一百以内的英语单词或者数字");        String str=scan.nextLine();//获取一行字符串        int flag;        try {             b=Integer.valueOf(str);//把字符串强制转换为数字             flag=1; //如果是数字,flag=1;        }         catch (Exception e){              flag=2; //如果不是数字,抛出异常,且flag=2;        }        int i,j;        switch(flag) //有两种情况        {        case 1://数字转换为英语单词                int a=b;                try{    //异常判断,数字是否超出范围                                     if(a<0||a>99)                throw new Exception();                }                   catch(Exception ex){        //抛出异常                        System.out.println("Error:数字超出范围");                        System.out.println("继续转换请输入'y'退出请输入任意字符");                String st=scan.nextLine();                s=st.charAt(0);                        break;                }                    //根据a的值进行判断以及转换                 if(a>=0&&a<10){     //转换0~9的数字                System.out.println("转换后的结果是:"+x[a]);                System.out.println("继续转换请输入'y'退出请输入任意字符");                String st=scan.nextLine();                s=st.charAt(0);                break;                }                               else if(a>9&&a<20){     //转换10~19的数字                System.out.println("转换后的结果是:"+y[a%10]);                System.out.println("继续转换请输入'y'退出请输入任意字符");                String st=scan.nextLine();                s=st.charAt(0);                break;                }                               else if(a%10==0){     //转换20~99中10的倍数的数字                System.out.println("转换后的结果是:"+z[a/10-2]);                System.out.println("继续转换请输入'y'退出请输入任意字符");                String st=scan.nextLine();                s=st.charAt(0);                break;                }                               else if(a>19&&a<100){        //转换20~99的非10的倍数数字                System.out.println("转换后的结果是:"+z[a/10-2]+" "+x[a%10]);                   System.out.println("继续转换请输入'y'退出请输入任意字符");                String st=scan.nextLine();                s=st.charAt(0);                break;                }                       case 2:                     //英语单词转换为数字           boolean flag1=true;           for(i=0;i<8;i++)                //转换20~99的单词                    {                    for(j=0;j<10;j++)                    {                    String str1=z[i],str2=x[j];                    if(str.equals((str1))){         //判断字符串内容是否相等                          System.out.println("转换后的结果是:"+(i*10+20)); //输出20~99中是10倍数的单词数字                    flag1=false; System.out.println("继续转换请输入'y'退出请输入任意字符");                    String st=scan.nextLine();                        s=st.charAt(0);                        break;                              }                                                          else if(str.equals((str1+" "+str2))){    //判断字符串内容是否相等                            System.out.println("转换后的结果是:"+(i*10+j+20)); //输出20~99中非10倍数的单词数字                       flag1=false; System.out.println("继续转换请输入'y'退出请输入任意字符");                       String st=scan.nextLine();                          s=st.charAt(0);                          break;                            }                             }                    }                           for(i=0;i<10;i++){                             if(str.equals(x[i])){       //判断字符串内容是否相等                            System.out.println("转换后的结果是:"+i);    //输出0~9中的单词数字                       flag1=false; System.out.println("继续转换请输入'y'退出请输入任意字符");                       String st=scan.nextLine();                   s=st.charAt(0);                   break;                     }                                 else if(str.equals(y[i])){       //判断字符串内容是否相等                         System.out.println("转换后的结果是:"+(10+i));   //输出10~19中的单词数字                     flag1=false;System.out.println("继续转换请输入'y'退出请输入任意字符");                     String st=scan.nextLine();                    s=st.charAt(0);                    break;                     }                                }                 if(flag1)    //若输入字符串不是英文数字,则输出信息提示                {                    System.out.println("Error:非法输入");                        System.out.println("继续转换请输入'y'退出请输入任意字符");                    String st=scan.nextLine();                    s=st.charAt(0);                }          }        }     System.out.println("程序运行结束");     }   }

原创粉丝点击