`
tianshi_kco
  • 浏览: 22459 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

将数字翻译成英文

    博客分类:
  • java
阅读更多
public class Demo {
    
    /*
     * Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文:
     * 如22: twenty two ,123:one hundred and twenty three。
     * 
     * 注意事项:
     * 1、数字为正整数,长度不超过十位,不考虑小数,转化结果为英文小写;
     * 2、输出格式为twenty two;
     * 3、非法数据请返回“error”;
     * 4、关键词提示:and, billion,million, thousand, hundred 。
     * 
     * 输入参数:
     * 		long num 输入的数字,如1234
     * 返回值:
     * 		正常情况下返回数字对应的英文,如one thousand two hundred and thirty four
     */
	public static String parse(long num) {
        if(num >= 10000000000L || num  < 0L){
        	return "error";
        }
        StringBuffer sb = new StringBuffer();
        if(num >= 1000000000L){
        	sb.append(subParse1(num / 1000000000L));       	
        	sb.append(" billion");
        	if(num / 1000000000L > 1){
        		sb.append("s");
        	}
        	num = num % 1000000000L;
        }
        if(num >= 1000000L){
        	if(!sb.toString().equals("")){
        		sb.append(" ");
        	}
        	sb.append(subParse1(num / 1000000L));
        	sb.append(" million");
        	if(num / 1000000L > 1){
        		sb.append("s");
        	}
        	num = num % 1000000L;
        }
        if(num >= 1000L){
        	if(!sb.toString().equals("")){
        		sb.append(" ");
        	}
        	sb.append(subParse1(num / 1000L));
        	sb.append(" thousand");
        	if(num / 1000L > 1){
        		sb.append("s");
        	}
        	num = num % 1000L;
        }
        if(num > 0){
        	if(!sb.toString().equals("")){
        		sb.append(" ");
        	}
        	sb.append(subParse1(num));
        }else{
        	if(sb.toString().equals("")){
        		sb.append("zero");
        	}
        }
    	return sb.toString().trim();
    }
	/**
	 * 个数最多只有三位的读法
	 * @param num
	 * @return
	 */
	public static String subParse1(long num){
		Integer i = (int) num;
		
		String[] str0to19 = new String[]{
				"zero","one","two","three","four","five",
		        "six","seven","eight","nine","ten",
		        "eleven","twelve","thirteen","fourteen","fifteen",
		        "sixteen","seventeen","eighteen","nineteen"
		        };
		String[] str20to90 = new String[]{
				"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"	
				};
		StringBuffer result = new StringBuffer();
		if(i >= 100){
			result.append(str0to19[i/100]);
			result.append(" hundred");
			if(i / 100 > 1){
				result.append("s");
        	}
			i = i % 100;
		}
		
		if(i >= 20){
			if(!result.toString().equals("")){
				result.append(" and ");
			}
			result.append(str20to90[i/10 - 2]);
			if(i % 10 != 0){
				result.append(" " + str0to19[i % 10]);
			}
		}else if(i > 0){
			if(!result.toString().equals("")){
				result.append(" and ");
			}
			result.append(str0to19[i]);
		}
		return result.toString().trim();
	}
}


2
2
分享到:
评论
3 楼 weijs 2014-02-14  
System.out.println(Num2Word.parse(102));
System.out.println(Num2Word.parse(110));
System.out.println(Num2Word.parse(12545));

输出:
102
110
twelve thousands 545
2 楼 mfkvfn 2014-02-13  
有没有试一下 102,102,120这样的。
1 楼 O0o陈小贱o0O 2014-02-13  

相关推荐

    将数字转成英文的js代码

    将数字翻译成英语的JavaScript,可以自动判断出你输入的数字是多大,它会自动拼合,按亿、千万、百万的语法翻译出来,挺实用。

    数字翻译为英文的c++实现

    1、 输入存储:用户输入数字,程序将其逐位转换为英文,考虑到用户输入的数字可能会比较长,所以应该用字符数组存储。 2、 数字转换:可以先将英文的0-9存到一个字符数组中,因为字符串的输出只需找到相应串的首地址...

    javascript经典特效---数字翻译成英文.rar

    在JavaScript编程领域,数字翻译成英文是一种常见的需求,特别是在创建用户友好的交互界面时,比如显示计数或者处理日期和时间。这个“javascript经典特效---数字翻译成英文.rar”压缩包可能包含一个实现这一功能的...

    数字翻译成英语.rar

    "数字翻译成英语.rar"这个压缩包文件可能包含了一份详细的教学资料,旨在帮助学习者理解和掌握数字的英文表示法。 首先,我们来了解一下基本的数字翻译。在中文中,数字从0到9分别为零、一、二、三、四、五、六、七...

    javascript经典特效---数字翻译成英语.rar

    通过学习和理解这个“javascript经典特效---数字翻译成英语.rar”项目,开发者不仅可以掌握数字转换成英文的技巧,还能提升对JavaScript条件判断、字符串操作、函数封装等基础概念的理解。在实际应用中,这个功能...

    JAVA数字翻译英文程序

    在给定的"JAVA数字翻译英文程序"项目中,我们关注的是如何使用Java编程语言来实现一个功能,该功能能够将输入的阿拉伯数字转换为对应的英文表达。这个程序对于国际化和本地化应用特别有用,因为它可以帮助非英语母语...

    将一串数字转换成英文输出

    从给定的代码片段来看,这是一段C++程序,其主要功能是将输入的一串数字转换成英文读法并输出。程序通过定义多个数组来存储英文数字的表示,并通过一系列函数来处理数字的各个部分(个位、十位、百位等),最终将...

    c++实现数字转换英文(无and)

    c++实现数字转换英文(无and) 如: 输入12345 输出"twelve thousand three hundred forty five

    num2english:将数字翻译成英文-matlab开发

    num2english 将数字转换为简单的英语等价物:num2english(14) 返回“十四”,num2english(7.63) 返回“七点六三”。 选项包括年份和优先级格式。 我用它来构建字符串。

    Java实现将数字日期翻译成英文单词的工具类实例

    本工具类实例提供了Java实现将数字日期翻译成英文单词的完整解决方案,结合了日期转换、字符串操作、数字翻译、数值翻译等相关实现技巧。这些技巧可以应用于实际开发中,例如银行卡号识别、日期转换、数值翻译等领域...

    语言翻译程序,将编程语言翻译成中文

    我的软件就是把编程语言看成一门语言,它只不过是把其中可以翻译的部分翻译成中文。 不会影响里面的逻辑。就如同把一首英文诗歌翻译为中文一样。意境会有所偏差。但是在程序语言内的逻辑绝不可能出现偏差。

    Java编程 翻译 编写程序,输入数字,使之转化为英语

    - 首先将最高位(千位)转换成英文,如“one thousand”。 - 接着处理百位,如“two hundred”。 - 对于十位和个位,根据情况使用`returnstring2`或`returnstring3`方法来转换。 - **对于2位数**: - 先将百位...

    Java实现数字转成英文的方法

    在Java编程中,将数字转换成英文是一种常见的需求,尤其在处理数字显示或报告时。这个过程涉及到字符串处理和数组操作,以将数字的各个部分转换成对应的英文单词。以下是如何使用Java实现这一功能的详细步骤: 首先...

    九键字母转换数字

    这里的关键在于计算方法:减去 65 是为了将 A 转换成 0,然后除以 3 是因为每三个字母对应一个数字键,最后加上 50 是为了将结果转换成 ASCII 表中的数字字符。 - **处理 S-Z 字母**:对于范围 `[83, 90]` 内的字符...

    易语言小猪中英文数字转换

    2. **英文数字转中文数字**:反之,它也能将英文数字转换成对应的中文数字表达。例如,“456”会被转换为“四百五十六”。 3. **混合语言数字处理**:在某些情况下,数字字符串可能包含中英文混合的数字,如“123个...

    Asp.net C# 数字货币金额转换为中英文金额写法

    在Asp.net C#开发中,经常需要处理与货币相关的数据,这包括将数字金额转换成规范的中英文表示方式,以满足财务报告、发票或合同等场景的需求。本资源提供的程序实现了一种高效的方法来完成这个任务。下面将详细阐述...

    数字通信中英文翻译.doc

    【标题】:数字通信中英文翻译.doc 【描述】:这份文档主要涵盖了数字通信系统的基础原理,包括其分析和设计的核心概念。它涉及到从信息源到一个或多个目的地以数字形式传输信息的过程。 【标签】:计算机 【部分...

    python实现将英文单词表示的数字转换成阿拉伯数字的方法

    本文实例讲述了python实现将英文单词表示的数字转换成阿拉伯数字的方法。分享给大家供大家参考。具体实现方法如下: import re _known = { 'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5...

    VBS 数字转英文代码

    在VBScript(VBS)编程中,有时我们需要将数字转换成英文表述,特别是在处理与Excel相关的自动化任务时。例如,我们可能需要将单元格中的数值转化为对应的英文单词,以方便阅读或报告。本篇将详细解释如何使用VBS实现...

    数字通信-外文翻译-外文文献-英文文献-数字通信第四版.doc

    "数字通信-外文翻译-外文文献-英文文献-数字通信第四版" 数字通信是指在计算机网络中传输数字信息的过程。它是计算机科学和信息技术的基础课题之一。在数字通信系统中,信息从信源产生,然后经过信源编码、信道编码...

Global site tag (gtag.js) - Google Analytics