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();
}
}
分享到:
相关推荐
将数字翻译成英语的JavaScript,可以自动判断出你输入的数字是多大,它会自动拼合,按亿、千万、百万的语法翻译出来,挺实用。
1、 输入存储:用户输入数字,程序将其逐位转换为英文,考虑到用户输入的数字可能会比较长,所以应该用字符数组存储。 2、 数字转换:可以先将英文的0-9存到一个字符数组中,因为字符串的输出只需找到相应串的首地址...
数字翻译成英语.rar数字翻译成英语.rar数字翻译成英语.rar数字翻译成英语.rar数字翻译成英语.rar数字翻译成英语.rar数字翻译成英语.rar
数字翻译成英语.rar数字翻译成英语.rar数字翻译成英语.rar数字翻译成英语.rar数字翻译成英语.rar数字翻译成英语.rar
将数字翻译成英文大写的软件。方便做文件的各位同仁,非常好用哦。
该程序可以将输入阿拉伯数字按照英语语法翻译成英语并输出
数字翻译成英文.rar
将你输入的想要转换的一串数字,转换成英文输出。
num2english 将数字转换为简单的英语等价物:num2english(14) 返回“十四”,num2english(7.63) 返回“七点六三”。 选项包括年份和优先级格式。 我用它来构建字符串。
我的软件就是把编程语言看成一门语言,它只不过是把其中可以翻译的部分翻译成中文。 不会影响里面的逻辑。就如同把一首英文诗歌翻译为中文一样。意境会有所偏差。但是在程序语言内的逻辑绝不可能出现偏差。
Java编程 翻译 编写程序,输入数字,使之转化为英语
主要介绍了Java实现将数字日期翻译成英文单词的工具类,结合完整实例形式分析了Java日期转换与字符串操作相关实现技巧,需要的朋友可以参考下
本文实例讲述了python实现将英文单词表示的数字转换成阿拉伯数字的方法。分享给大家供大家参考。具体实现方法如下: import re _known = { 'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5...
Excel 中将数值转换为英文单词
shell 是如此地重要,但令人惊奇的是,介绍shell 的书没有真正令人满意的。所幸的是,我 看到了这本被人称为abs 的书,这本书介绍了bash 大量的细节和广阔的范围,我遇到的绝 大部分的技术问题--无论是我忘记的或是...
字数Golang软件包将数字转换成单词。 例如: 148变成one hundred forty-eight 。 受此python库启发。安装运行go get -u github.com/vinbyte/num2words用法package mainimport ("fmt""github/vinbyte/num2words")func...
一个可从数字化图像中识别马拉雅拉姆语文本并将其翻译为英语的android应用程序。 这样的应用程序对于那些难以理解诸如马拉雅拉姆语之类的母语的人来说将是极大的帮助。该应用程序的目标用户是经常旅行的人,尤其是...
1.统计并打印多篇文章中出现过的英语单词和其的出现频率(自动剔除标点符号,中文,数字,英文人名和指定单词),可对数据进行多方式排序,搜索单词,图表分析等操作。 2.软件可进行“和原有数据合并”操作,使得...
根据Mandarin.dat将中文字符翻译为拼音 安装 $ pip install pinyin 用法 >> > import pinyin >> > print pinyin . get ( '你 好' ) n ǐ h ǎ o >> > print pinyin . get ( '你好' , format = "strip" , delimiter ...
在此阶段的现阶段(2015年6月11日),我们将自己局限于诗歌,但是在将来,该算法可以输入任何英文文本并输出3D雕塑。 这项工作始于2014年的Jordan Scott和Aaron Tucker,并在Ryerson的数字人文中心(CDH)和Ryerson...