「java数字和汉字互转」java如何把数字转换成字符串

博主:adminadmin 2023-03-17 02:36:07 607

今天给各位分享java数字和汉字互转的知识,其中也会对java如何把数字转换成字符串进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java编程 数字转换成汉字

我自己写的,匆忙写的。我有时间再改进改进。

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.HashMap;

import java.util.Stack;

/*

* 本程序

*/

public class Transfer {

public StackInteger transfer(int n){

StackInteger st = new StackInteger();

int division = 0; //余数

while(n=10){

division = n%10;

st.push(division);

n = n/10;

}

st.push(n); //将最高位压栈

return st;

}

public static void main(String[]args){

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String in = "";

try {

in = reader.readLine();

} catch (IOException e) {

e.printStackTrace();

}

int n = 0;

try{

n = Integer.parseInt(in);

} catch(NumberFormatException e){

e.printStackTrace();

}

Transfer tf = new Transfer();

StackInteger s = tf.transfer(n);

/*

while(!s.empty()){

System.out.print(s.pop()); //测试语句

}

*/

HashMapInteger, String hp1 = new HashMapInteger, String(); //第一个映射表

hp1.put(0, "零"); //根据所在位的数值与中文对应

hp1.put(1, "一");

hp1.put(2, "二");

hp1.put(3, "三");

hp1.put(4, "四");

hp1.put(5, "五");

hp1.put(6, "六");

hp1.put(7, "七");

hp1.put(8, "八");

hp1.put(9, "九");

HashMapInteger, String hp2 = new HashMapInteger, String(); //第二个映射表

hp2.put(2, "十"); //根据所在位数,与中文对应

hp2.put(3, "百");

hp2.put(4, "千");

hp2.put(5, "万");

hp2.put(6, "十万");

hp2.put(7, "百万");

hp2.put(8, "千万");

hp2.put(9, "亿");

//System.out.println(s.size());

String out = "";

while(!s.isEmpty()){

int temp = s.pop();

if(s.size()==0){

if(temp !=0){

out = out + hp1.get(temp);

}

}

else{

if(temp==0){

out = out + hp1.get(temp);

}

else{

out = out + hp1.get(temp) + hp2.get(s.size()+1);

}

}

}

System.out.println(out);

}

}

对于如2008之类的数,输出的是二千零零八,还需要加以判断,我再去处理下。

还有涉及万以上的数,比如

123456

输出的是一十万二万三千四百五十六,也必须增加判断。

Java 关于中文大写金额与阿拉伯数字 互相转换的问题(eclipse版)

package test.format;import java.text.NumberFormat;import java.util.HashMap;public class SimpleMoneyFormat {

public static final String EMPTY = "";public static final String ZERO = "零";public static final String ONE = "壹";public static final String TWO = "贰";public static final String THREE = "叁";public static final String FOUR = "肆"; public static final String FIVE = "伍";public static final String SIX = "陆";public static final String SEVEN = "柒"; public static final String EIGHT = "捌"; public static final String NINE = "玖"; public static final String TEN = "拾"; public static final String HUNDRED = "佰"; public static final String THOUSAND = "仟"; public static final String TEN_THOUSAND = "万"; public static final String HUNDRED_MILLION = "亿"; public static final String YUAN = "元"; public static final String JIAO = "角"; public static final String FEN = "分"; public static final String DOT = "."; private static SimpleMoneyFormat formatter = null;private HashMap chineseNumberMap = new HashMap(); private HashMap chineseMoneyPattern = new HashMap(); private NumberFormat numberFormat = NumberFormat.getInstance(); private SimpleMoneyFormat() { numberFormat.setMaximumFractionDigits(4); numberFormat.setMinimumFractionDigits(2); numberFormat.setGroupingUsed(false); chineseNumberMap.put("0", ZERO); chineseNumberMap.put("1", ONE); chineseNumberMap.put("2", TWO); chineseNumberMap.put("3", THREE); chineseNumberMap.put("4", FOUR); chineseNumberMap.put("5", FIVE); chineseNumberMap.put("6", SIX); chineseNumberMap.put("7", SEVEN); chineseNumberMap.put("8", EIGHT); chineseNumberMap.put("9", NINE); chineseNumberMap.put(DOT, DOT); chineseMoneyPattern.put("1", TEN); chineseMoneyPattern.put("2", HUNDRED); chineseMoneyPattern.put("3", THOUSAND); chineseMoneyPattern.put("4", TEN_THOUSAND); chineseMoneyPattern.put("5", TEN); chineseMoneyPattern.put("6", HUNDRED); chineseMoneyPattern.put("7", THOUSAND); chineseMoneyPattern.put("8", HUNDRED_MILLION); }

public static SimpleMoneyFormat getInstance() { if (formatter == null) formatter = new SimpleMoneyFormat(); return formatter; }

public String format(String moneyStr) { checkPrecision(moneyStr); String result; result = convertToChineseNumber(moneyStr); result = addUnitsToChineseMoneyString(result); return result; } public String format(double moneyDouble) { return format(numberFormat.format(moneyDouble)); } public String format(int moneyInt) { return format(numberFormat.format(moneyInt));

} public String format(long moneyLong) { return format(numberFormat.format(moneyLong)); }

public String format(Number moneyNum) { return format(numberFormat.format(moneyNum)); }

private String convertToChineseNumber(String moneyStr) { String result; StringBuffer cMoneyStringBuffer = new StringBuffer(); for (int i = 0; i moneyStr.length(); i++) { cMoneyStringBuffer.append(chineseNumberMap.get(moneyStr.substring(i, i + 1))); }

//拾佰仟万亿等都是汉字里面才有的单位,加上它们 int indexOfDot = cMoneyStringBuffer.indexOf(DOT); int moneyPatternCursor = 1; for (int i = indexOfDot - 1; i 0; i--) { cMoneyStringBuffer.insert(i, chineseMoneyPattern.get(EMPTY + moneyPatternCursor)); moneyPatternCursor = moneyPatternCursor == 8 ? 1 : moneyPatternCursor + 1; } String fractionPart = cMoneyStringBuffer.substring(cMoneyStringBuffer.indexOf(".")); cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf("."), cMoneyStringBuffer.length()); while (cMoneyStringBuffer.indexOf("零拾") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零拾"), cMoneyStringBuffer.indexOf("零拾") + 2, ZERO);

} while (cMoneyStringBuffer.indexOf("零佰") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零佰"), cMoneyStringBuffer.indexOf("零佰") + 2, ZERO);

}while (cMoneyStringBuffer.indexOf("零仟") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零仟"), cMoneyStringBuffer.indexOf("零仟") + 2, ZERO);

}while (cMoneyStringBuffer.indexOf("零万") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零万"), cMoneyStringBuffer.indexOf("零万") + 2, TEN_THOUSAND);

} while (cMoneyStringBuffer.indexOf("零亿") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零亿"), cMoneyStringBuffer.indexOf("零亿") + 2, HUNDRED_MILLION); } while (cMoneyStringBuffer.indexOf("零零") != -1) {

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零零"), cMoneyStringBuffer.indexOf("零零") + 2, ZERO);

} if (cMoneyStringBuffer.lastIndexOf(ZERO) == cMoneyStringBuffer.length() - 1) cMoneyStringBuffer.delete(cMoneyStringBuffer.length() - 1, cMoneyStringBuffer.length()); cMoneyStringBuffer.append(fractionPart);

result = cMoneyStringBuffer.toString(); return result; }private String addUnitsToChineseMoneyString(String moneyStr) { String result; StringBuffer cMoneyStringBuffer = new StringBuffer(moneyStr); int indexOfDot = cMoneyStringBuffer.indexOf(DOT); cMoneyStringBuffer.replace(indexOfDot, indexOfDot + 1, YUAN); cMoneyStringBuffer.insert(cMoneyStringBuffer.length() - 1, JIAO); cMoneyStringBuffer.insert(cMoneyStringBuffer.length(), FEN); if (cMoneyStringBuffer.indexOf("零角零分") != -1)//没有零头,加整

cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零角零分"), cMoneyStringBuffer.length(), "整"); else if (cMoneyStringBuffer.indexOf("零分") != -1)//没有零分,加整 cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf("零分"), cMoneyStringBuffer.length(), "整");

else { if(cMoneyStringBuffer.indexOf("零角")!=-1)

cMoneyStringBuffer.delete(cMoneyStringBuffer.indexOf("零角"),cMoneyStringBuffer.indexOf("零角")+2);

tmpBuffer.append("整"); } result = cMoneyStringBuffer.toString(); return result; } private void checkPrecision(String moneyStr) {

int fractionDigits = moneyStr.length() - moneyStr.indexOf(DOT) - 1; if (fractionDigits 2) throw new RuntimeException("金额" + moneyStr + "的小数位多于两位。"); //精度不能比分低 }public static void main(String args[]) { System.out.println(getInstance().format(new Double(10010001.01))); }}

使用Java程序如何让阿拉伯数字转换成中文?

import java.util.Scanner;

public class Num

{

public Num() {}

static String []bigNum={"零","一","二","三","四","五","六","七","八","九"};

static String getNUM(String str)

{

int t=Integer.parseInt(str);

return bigNum[t];

}

public static void main(String[] args)

{

try

{

String strbig=new String("");

System.out.print("请输入数字:");

Scanner sc=new Scanner(System.in);

long num=sc.nextLong();

String temp=String.valueOf(num);

int b=temp.indexOf(".");

int s=temp.length()-(b+1);

int j=b;

for (int i =0; ib;i++) {

strbig+=getNUM(temp.substring(i,i+1));

j--;

}

temp=temp.substring(b+1,temp.length());

for (int i = 0; i s; i++)

{

strbig+=getNUM(temp.substring(i,i+1));

}

System.out.println("转换结果:"+strbig);

}

catch(Exception ex)

{

System.out.println("请输入整数");

}

}

}

java数字转换汉字

25187是汉字‘扣’的字符编码。

每一个汉字,字母,标点符号都有自己的字符编码。

你看这个地址里的表就明白了。键盘上你按住alt键,在先键盘(数字区)输入对应的数字,显示出来的也是数字代码对应的字符。

比如:在能输入文字的地方:按住alt,在小键盘(数字区)上依次按下3,5放开所有键,你看到光标处显示的是‘#’

如何在java中将汉字输出成数字

java 中将数字变成字符输出常用的有两种方法:

第一种,直接使用系统强制类型转换进行输出.

例:

1

2

int i = 1;

System.out.println(i + "");

第二种,使用字符串 String 的 valueOf() 方法进行转换输出.

例:

1

2

int i = 1;

System.out.println(String.valueOf(i));

java怎么把字符转换成数字?

下面这个方法可以转换,前提是你的字符内容是数字类型。比如 String str = "123" 或者 char str = '2'\x0d\x0a\x0d\x0achar a = '1';\x0d\x0aString b = String.valueOf(a);\x0d\x0aint c = Integer.parseInt(b);\x0d\x0a\x0d\x0a上面你说的 c - '0' 这一步应该就是转换格式的 ,我知道类似的在 js 中把一个变量转换成字符串 可以用 var str = str+""; 加两个引号就相当于格式转换了。

关于java数字和汉字互转和java如何把数字转换成字符串的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。