java数字转英文代码

java 数字 转为 英文

public class NumUtil {

public static final String[] enNum = { // 基本数词表

“zero”, “one”, “tow”, “three”, “four”, “five”, “six”, “seven”, “eight”,

“nine”, “ten”, “eleven”, “twelve”, “thirteen”, “fourteen”,

“fifteen”, “sixteen”, “seventeen”, “eighteen”, “nineteen”,

“twenty”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “thirty”, “”, “”, “”,

“”, “”, “”, “”, “”, “”, “fourty”, “”, “”, “”, “”, “”, “”, “”, “”,

“”, “fifty”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “sixty”, “”, “”,

“”, “”, “”, “”, “”, “”, “”, “seventy”, “”, “”, “”, “”, “”, “”, “”,

“”, “”, “eighty”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “ninety” };

public static final String[] enUnit = { “hundred”, “thousand”, “million”,

“billion”, “trillion”, “quintillion” }; // 单位表

public static void main(String[] args) {

System.out.println(analyze(1)); // 测试数据

System.out.println(analyze(21));

System.out.println(analyze(105));

System.out.println(analyze(3250));

System.out.println(analyze(47826));

System.out.println(analyze(56945781));

}

public static String analyze(long num) { // long型参数,

return analyze(String.valueOf(num)); // 因为long型有极限,所以以字符串参数方法为主

}

public static String analyze(String num) { // 数字字符串参数

// 判断字符串是否为数字

if (!num.matches(“\\d+”)) {

return String.format(“%s is not number”, num);

}

num = num.replaceAll(“^[0]*([1-9]*)”, “$1”); // 把字符串前面的0去掉

if (num.length() == 0) { // 如果长度为0,则原串都是0

return enNum[0];

} else if (num.length() 9) { // 如果大于9,即大于999999999,题目限制条件

return “too big”;

}

// 按3位分割分组

int count = (num.length() % 3 == 0) ? num.length() / 3

: num.length() / 3 + 1;

if (count enUnit.length) {

return “too big”;

} // 判断组单位是否超过,

// 可以根据需求适当追加enUnit

String[] group = new String[count];

for (int i = num.length(), j = group.length – 1; i 0; i -= 3) {

group[j–] = num.substring(Math.max(i – 3, 0), i);

}

StringBuilder buf = new StringBuilder(); // 结果保存

for (int i = 0; i count; i++) { // 遍历分割的组

int v = Integer.valueOf(group[i]);

if (v = 100) { // 因为按3位分割,所以这里不会有超过999的数

buf.append(enNum[v / 100]).append(” “).append(enUnit[0])

.append(” “);

v = v % 100; // 获取百位,并得到百位以后的数

if (v != 0) {

buf.append(“and “);

} // 如果百位后的数不为0,则追加and

}

if (v != 0) { // 前提是v不为0才作解析

if (v 20 || v % 10 == 0) { // 如果小于20或10的整数倍,直接取基本数词表的单词

buf.append(enNum[v]).append(” “);

} else { // 否则取10位数词,再取个位数词

buf.append(enNum[v – v % 10]).append(” “);

buf.append(enNum[v % 10]).append(” “);

}

if (i != count – 1) { // 百位以上的组追加相应的单位

buf.append(enUnit[count – 1 – i]).append(” “);

}

}

}

return buf.toString().trim(); // 返回值

}

}

运行结果:

one

twenty one

one hundred and five

three thousand tow hundred and fifty

fourty seven thousand eight hundred and twenty six

fifty six million nine hundred and fourty five thousand seven hundred and eighty one

java数字转英文代码

一个java的问题 讲输入的阿拉伯数字转换成英文

很简单的程序,我就不写注释了吧

import java.util.Scanner;

public class EnglishNumberFormatter {

private static final String[] BITS = {“ONE”, “TWO”, “THREE”, “FOUR”, “FIVE”,

“SIX”, “SEVEN”, “EIGHT,”, “NINE”, “TEN”};

private static final String[] TEENS = {“ELEVEN”, “TWELF”, “THIRTEEN”,

“FOURTEEN”, “FIFTEEN”, “SIXTEEN”, “SEVETEEN”, “EIGHTEEN”, “NIGHTEEN”};

private static final String[] TIES = {“TWENTY”, “THRITY”, “FORTY”, “FIFTY”,

“SIXTY”, “SEVENTY”, “EIGHTY”, “NINETY”};

private static Scanner sc;

public static void main(String[] args) {

sc = new Scanner(System.in);

int num = 0;

while(num != -1) {

System.out.print(“Please type a number between 0 and 999: “);

num = sc.nextInt();

if(num 0 || num  999) {

continue;

}

String english = toEnglish(num);

System.out.println(english);

}

System.out.println(“Thank you for using this program”);

}

private static String toEnglish(int num) {

if(num == 0) {

return “Zero”;

}

StringBuffer buffer = new StringBuffer();

if(num = 100) {

buffer.append(pickHunder(num));

if(num % 100 != 0) {

buffer.append(” AND “);

}

num -= (num / 100) * 100;

}

boolean largerThan20 = false;

if(num = 20) {

largerThan20 = true;

buffer.append(pickTies(num));

num -= (num / 10) * 10;

}

if(!largerThan20  num  10) {

buffer.append(pickTeens(num));

num = 0;

}

if(num  0) {

String bit = pickBits(num);

if(largerThan20) {

buffer.append(” “);

}

buffer.append(bit);

}

return buffer.toString();

}

private static String pickHunder(int num) {

int hunder = num / 100;

return BITS[hunder – 1] + ” HUNDER”;

}

private static String pickTies(int num) {

int ties = num / 10;

return TIES[ties – 2];

}

private static String pickTeens(int num) {

return TEENS[num – 11];

}

private static String pickBits(int num) {

return BITS[num – 1];

}

}

java如何将数字转换为英文

Java 数字转成英文

英文数词,按3位3位区分

Hundred: 100

Thousand:1,000

Million: 1,000,000

Billion: 1,000,000,000

Trillion: 1,000,000,000,000

Quintillion: 1,000,000,000,000,000,000

Sextillion: 1,000,000,000,000,000,000,000

Nonillion: 1,000,000,000,000,000,000,000,000,000,000

Centillion: 1 followed by 303 zeros

所以把数字字符串按3位分割,分别解析

public class NumUtil {

public static final String[] enNum = { // 基本数词表

“zero”, “one”, “tow”, “three”, “four”, “five”, “six”, “seven”, “eight”,

“nine”, “ten”, “eleven”, “twelve”, “thirteen”, “fourteen”,

“fifteen”, “sixteen”, “seventeen”, “eighteen”, “nineteen”,

“twenty”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “thirty”, “”, “”, “”,

“”, “”, “”, “”, “”, “”, “fourty”, “”, “”, “”, “”, “”, “”, “”, “”,

“”, “fifty”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “sixty”, “”, “”,

“”, “”, “”, “”, “”, “”, “”, “seventy”, “”, “”, “”, “”, “”, “”, “”,

“”, “”, “eighty”, “”, “”, “”, “”, “”, “”, “”, “”, “”, “ninety” };

public static final String[] enUnit = { “hundred”, “thousand”, “million”,

“billion”, “trillion”, “quintillion” }; // 单位表

public static void main(String[] args) {

System.out.println(analyze(1)); // 测试数据

System.out.println(analyze(21));

System.out.println(analyze(105));

System.out.println(analyze(3250));

System.out.println(analyze(47826));

System.out.println(analyze(56945781));

}

public static String analyze(long num) { // long型参数,

return analyze(String.valueOf(num)); // 因为long型有极限,所以以字符串参数方法为主

}

public static String analyze(String num) { // 数字字符串参数

// 判断字符串是否为数字

if (!num.matches(“\\d+”)) {

return String.format(“%s is not number”, num);

}

num = num.replaceAll(“^[0]*([1-9]*)”, “$1”); // 把字符串前面的0去掉

if (num.length() == 0) { // 如果长度为0,则原串都是0

return enNum[0];

} else if (num.length() 9) { // 如果大于9,即大于999999999,题目限制条件

return “too big”;

}

// 按3位分割分组

int count = (num.length() % 3 == 0) ? num.length() / 3

: num.length() / 3 + 1;

if (count enUnit.length) {

return “too big”;

} // 判断组单位是否超过,

// 可以根据需求适当追加enUnit

String[] group = new String[count];

for (int i = num.length(), j = group.length – 1; i 0; i -= 3) {

group[j–] = num.substring(Math.max(i – 3, 0), i);

}

StringBuilder buf = new StringBuilder(); // 结果保存

for (int i = 0; i count; i++) { // 遍历分割的组

int v = Integer.valueOf(group[i]);

if (v = 100) { // 因为按3位分割,所以这里不会有超过999的数

buf.append(enNum[v / 100]).append(” “).append(enUnit[0])

.append(” “);

v = v % 100; // 获取百位,并得到百位以后的数

if (v != 0) {

buf.append(“and “);

} // 如果百位后的数不为0,则追加and

}

if (v != 0) { // 前提是v不为0才作解析

if (v 20 || v % 10 == 0) { // 如果小于20或10的整数倍,直接取基本数词表的单词

buf.append(enNum[v]).append(” “);

} else { // 否则取10位数词,再取个位数词

buf.append(enNum[v – v % 10]).append(” “);

buf.append(enNum[v % 10]).append(” “);

}

if (i != count – 1) { // 百位以上的组追加相应的单位

buf.append(enUnit[count – 1 – i]).append(” “);

}

}

}

return buf.toString().trim(); // 返回值

}

}

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月27日 02:34:33
下一篇 2024年3月27日 02:43:47

相关推荐

  • c语言控制代码的换码序列,c语言交换代码

    求C语言编程大神解答一下下面这个编程代码? k==5,用5去除125余0,所以r=125%5中r为0。由于!0为1,所以执行while循环体:先打印出5(k的值),再n=n/k==125/5=25;由于251则再打印出*号。这一循环结果输出是5*。 下面是我的代码,三个函数分别对应三个问题。 在实现基本要求的前提下,拓展了可以从键盘输入的功能,以下为各题代码…

    2024年5月23日
    5800
  • 黑客代码软件学习推荐歌曲的简单介绍

    我想自学编程代码,,目地是“黑”网站,开发出破解代码。有没有这方面的… 这个迭代周期不应该以周为周期或以月为周期发生,而是应该以日为周期。知识等待使用的时间越久,知识这把斧头就越钝。等待学习新知识的时间越长,你就越难以将其融入到代码中。 我认为这个问题问得本身就显得有点矛盾,想学却担心自己看不懂代码学不来,试问哪个编程人员不是从零开始的。坚定信念…

    2024年5月23日
    4800
  • java死亡,java死代码是什么意思

    我的世界传送回死亡点指令是什么? 1、下面就让我们一起来了解一下吧:我的世界回到死的地方的指令是输入/back,就可以回到死亡地点了,当然也可以看信标,因为死亡后会有一道光集中在死亡点,只要循着光就可以找到目的地了。 2、在服务器中的指令 首先打开指令台,在指令行输入“/back”就可以回到自己的死亡地点了。在单人游戏中的指令 在单人游戏中,您无法直接返回到…

    2024年5月23日
    4900
  • excel数字字符串是什么,excel中数字字符串

    Excel中的数据类型都有什么呢? 1、excel的数据类型包括数值型数据、字符型数据、逻辑型数据、日期型数据。字符型数据:在Excel中,字符型数据包括汉字、英文字母、空格等,每个单元格最多可容纳32000个字符。 2、Excel工作表中的数据有四种类型,分别是文本、数值(含日期时间)、逻辑、出错值。文本类型就是平常所输入的汉字、空格、英文字母。数值型的数…

    2024年5月23日
    3900
  • excel随机生成数,Excel随机生成数字函数

    Excel如何生成随机数? 首先在excel表格的单元格内输入随机函数公式:=RAND()。点击回车即可生成一个随机数字,该数据的大小范围无法控制,需要将其设置在一定范围内。 将鼠标移到该单元格的右下角,当鼠标变成黑色加号时,拖动鼠标填充到其他单元格,即可生成一组随机数。 可以直接使用RANDBETWEEN函数生成一定范围内的随机数。可以使用RAND函结合其…

    2024年5月23日
    3700
  • java入门程序,java入门简单代码

    零基础小白如何快速入行JAVA?需要做好这五步! 1、利用好老师、同学等人手资源,利用好Java培训机构的资料、课件等资源,不懂就问,有知识点就记录。善于总结问题,积极弥补自身的不足之处,可以建一个最简单的Javamain方法进行测试验证。 2、第1步:学习JAVA的开发环境配置、开发第一个Java程序。也建议大家开始使用eclipse等IDE,不必纠结是不…

    2024年5月23日
    4200
  • linux搭建web服务器cgi,linux搭建web服务器提供bash代码

    简述建立web服务器的过程(建立web个人网站的方法) 可以参考我们上次的笔记搭建开发板的WiFi环境:实用boa交叉编译下载boa-0.91tar.gz,解压,进入boa-0.913/src目录,执行以下命令生成Makefile:/configure修改Makefile并设置交叉编译器。 空间:有免费和付费的,(当然也可以自己建服务器啊)如果是个人,刚开始…

    2024年5月23日
    4900
  • javaexcel列变成数字,java列表转化为字符串

    JAVA导出excel,数字如何去掉小三角?就是变成数字格式 单元格较少时可通过直接设置去掉小三角。选定单元格区域,在其上点鼠标右键——“设置单元格格式”,点“数字”标签——“常规”或“数值”。双击鼠标左键取消倒三角。利用“分列”功能去掉小三角。 应该是单元格变为文本格式。如是数字,而又想要显示前导0,比如00002,则可以设置:工具→选项→错误检查→把“数…

    2024年5月23日
    4500
  • 黑客代码学习励志壁纸,黑客零基础入门代码

    2021中考励志壁纸图片 励志学习的可以做手机壁纸的图片如下图。零碎的时间实在可以成就大事业,丈夫志四海,万里犹比邻,黄金诚然是宝贵的,但是生气蓬勃、勇敢的爱国者却比黄金更为宝贵,三更灯火五更鸡,正是男儿读书时。 中考励志壁纸图片欣赏 总想赢者必输,不怕输者必赢。2021中考图片励志壁纸图片1 试试就能行,争争就能赢。 信心是成功的一半。 中考激励考生的励志…

    2024年5月23日
    3900
  • 数字转为字符串java,数字转为字符串python

    怎么用Java语言将数字转化成字符串 1、方法1:字符串拼接任何类型变量都可以和字符串相加拼接,加一个空字符串,就可以得到它转化为字符串的结果。 2、java中将整数转换成字符串只需在这个整数变量的后面添加添加一个空的字符串()即可。 3、各种数字类型转换成字符串型:String s = String.valueOf( value); // 其中 value…

    2024年5月23日
    4300

发表回复

登录后才能评论



关注微信