输入数字转换成英文输出

  • 源码

一个简单的demo,运用了较多的判断对输入输出进行限制。

源码

import java.util.Scanner;public class Transformation {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入要转换的数字:");String num = sc.nextLine();String finalresult ="";//判断输入的是否是正整数Boolean strResult1 = num.matches("^[1-9]\\d*|0$");//判断输入的是否是正小数Boolean strResult2 = num.matches("^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$");if(strResult1 == true) {long a = Long.parseLong(num);finalresult = cut(a);System.out.println(finalresult);} else if (strResult2 == true){String[] splitnum = num.split("\\.");if(splitnum[1].length()>2) {System.out.println("输入小数点后位数有误");} else{String back = splitnum[1]+"/100";long a = Long.parseLong(splitnum[0]);finalresult = cut(a)+" and "+back;System.out.println(finalresult);}}else{System.out.println("输入内容格式错误,请输入一个范围在0~999,999,999的正数");}}//Hundred 100; Thousand 1,000; Million 1,000,000;Billion 1,000,000,000//每三位 切割字符串public static String cut(long a){String cut1 = Long.toString(a);String recut1 = reverse(cut1);//反转数组String Fresult ="";//最终输出结果String[] s =  new String[3];//定义字符串变量存放解析出来的三位一组的字符串switch (recut1.length() % 3){case 1:recut1 +="00";break;case 2:recut1 +="0";break;}for(int i=0;i<recut1.length()/3;i++){s[i] = reverse(recut1.substring(i*3,(i+1)*3));//从个位开始每3位依次存放进数组}if(recut1.length()/3==1){Fresult = thou(s[0]);}else if(recut1.length()/3==2){Fresult =thou(s[1])+" Thousands and "+thou(s[0]);}else if(recut1.length()/3==3){if(s[1].equals("000")){Fresult =thou(s[2])+" Million and "+thou(s[0]);}else{Fresult =thou(s[2])+" Million and "+thou(s[1])+" Thousands and "+thou(s[0]);}}return Fresult;}//100以内的输出public static String thou(String s){int a = Integer.parseInt(s);String result = "";//一百以内的输出//100以内数字表示String s1,s2,s3 = "";if(a<20){result = gewei(s);}else if (a>19 && a<100){//截取十位s2 =s.substring(1,2);//截取个位s1 =s.substring(2,3);if(a%10==0){result = shiwei(s2);}else{result = shiwei(s2)+"-"+gewei(s1);}}else if (a>99) {//截取百位s3 =s.substring(0,1);//截取十位s2 =s.substring(1,2);//截取个位s1 =s.substring(2,3);if (a % 100 == 0) {result = gewei(s3) + " Hundred";} else if (a % 10 == 0) {result = gewei(s3) + " Hundred" + " and " + shiwei(s2);}else if(s2.equals("0")){result = gewei(s3) + " Hundred" + " and " + gewei(s1);} else {result = gewei(s3) + " Hundred" + " and " + shiwei(s2) + "-" + gewei(s1);}}return result;}private static String gewei(String s){//19以内的数字String[] Numarr1 = new String[] { "", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine","Ten", "Eleven", "Tweleve", "Thirteen", "Fourteen", "Fifteen", "Sixteen","Seventeen", "Eighteen", "Nineteen" };return Numarr1[Integer.parseInt(s)];}private static String shiwei(String s){//整十的数字String[] Numarr2 = new String[] { "","Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety" };return Numarr2[Integer.parseInt(s)];}public static String reverse(String s) {char[] array = s.toCharArray();String tmp = "";for (int i = array.length-1; i>=0;i--){tmp +=array[i];}return tmp.toString();}}

输入数字转换成英文输出相关推荐

  1. java数字转中文_Java程序:输入数字转换成中文输出

    功能看似简单,但真正实现起来也不是易事 现在贴出代码,欢迎各位幕友提出建议!! package test01; import java.util.Scanner; public class Test ...

  2. php数字转英文,PHP金额数字转换成英文

    PHP金额数字转换成英文 $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]=" ...

  3. oracle 英文转数字,数字转换成英文

    今天看到一篇帖子,讲述的是如何把数字转换成英文表示.本人觉得不错,将其收入我的经典sql.原文如下: 利用to_timestamp,to_char两个内置函数将范围为(-999999999,99999 ...

  4. EXCEL电子表格:将数字转换成英文金额

    在工作中可能用到在EXCEL中输入一个数字,可以自动转换成英文金额标识.EXCEL或WPS通过VBA自定义函数可以实现. 1. 新建Excel表格 2. 按住"AIt+F11"打开 ...

  5. uni-app - javaScript - vue2 将数字转换成英文字母

    1.方法调用 checkNum(num) { //把数字转换为字母console.log(num + "把数字转换为字母");if (typeof(num) == 'number' ...

  6. c语言输入整数要求输出字符,求C语言 将输入整数转换成字符串输出!

    #include #include int power(int a, int n) { return pow((double)a, n); } #define pow power int main() ...

  7. java电话键盘字母数字转换_用Java语言将一个键盘输入的数字转化成中文输出

    用Java语言将一个键盘输入的数字转化成中文输出 将一个键盘输入的数字转化成中文输出(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)用java语言实现,,请编一段... 将一个键盘输入 ...

  8. 4、编写程序,根据用户输入的数字转换成相应的中文的大写数字。例如,1.23转换为“壹点贰叁”。

    –Python 4.编写程序,根据用户输入的数字转换成相应的中文的大写数字.例如,1.23转换为"壹点贰叁". 问题遇到的现象和发生背景 输入含有0就不会输出 问题相关代码 imp ...

  9. java将大写数字转换成小写并输出

    import java.util.Scanner; public class Low { //lowNumber方法将大写数字转换成小写并输出 private static void lowNumbe ...

  10. python数字转英文_python:将数字转换成用英文表达的程序

    前几天无意中看到了一篇文章列了很多数字的英文表达方式(http://blog.csdn.net/sun7545526/article/details/8122416),正好这段时间在学习python, ...

最新文章

  1. 中国光大集团去年营收1617亿元 同比增长19%
  2. 您必须在sources.list中指定代码源_python如何从源代码构建lxml
  3. 光流 | 基于Horn-Schunck HS变分光流算法改进
  4. 四-1、Cadence Allegro推荐操作方式和视图命令
  5. dotnet 是 前30个增长最快速度的开源项目中排名第一的开发平台
  6. 对AutoIt中控件和窗口的理解
  7. Kaggle 比赛分类与学习资源整理
  8. C++ 友元函数 友元类 friend class
  9. 中国智能汽车行业市场需求趋势与发展战略规划建议报告2022-2028年版
  10. 海康linux 密码忘记,linux下调用海康sdk
  11. 等价类划分法-案例剖析-设计测试用例
  12. 可以用计算机控制手机的软件,还有这样的神奇软件!让你用PC操控手机的神器...
  13. SpringBoot服务端集成腾讯云短信服务
  14. 【多媒体基础知识】 --- 什么是流媒体技术
  15. JavaScript面试题②(JS面试题②)
  16. 微信公众号JS-SDK多图上传爬坑指南
  17. 关于51/STC单片机中断优先级的调整
  18. java折线图_Java系列:JFreeChart在线制作折线图
  19. 科创板公司数据信息爬取
  20. 记一下网络电台收集网址

热门文章

  1. Java总结IO之总集篇
  2. 20 个 Laravel Eloquent 必备的实用技巧 1
  3. ( 转)关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi
  4. ios 常用的第三方库
  5. oracle认证考试_通过获得Oracle助理认证来提升您的职业-PrepAway进行的1Z0-052考试复习
  6. EulerOS简介--openEuler
  7. 使用mybaisplus时使用LambdaQueryWrapper进行条件查询发生evaluating expression异常处理
  8. VUE项目中高德地图选择坐标和输入搜索功能
  9. Linux云计算机构-防盗防击防破解三大工具:webshell、ddos-deflate、Medusa
  10. 基于SSM的网上图书商城系统