當前位置:首頁 » 編程語言 » java數字轉中文

java數字轉中文

發布時間: 2022-08-28 16:31:50

A. java程序怎麼才能把數字轉換成中文顯示

//我寫的這個類的用法:只要你把想轉換的數字當作參數傳給printUp這個方法就可以了。
public class A {
public static void main(String[] args){
printUp(1011);
}

public static void printUp(int i){
String s = String.valueOf(i); //--------- 把接收到的int參數轉成字元串
for(int j=0; j<s.length(); j++){ //-------根據字元串長度做其長度那麼多次的循環
char c = s.charAt(j); //------------------把數字每一位以char的形式取出來
String tem = null; //---------------------定一個臨時用的字元串
if(c=='1'){ //---------------------用if來判斷每一位數字應該用哪個大寫中文來列印。
tem = "一"; //---------------------以下我就沒必要解釋了。
}else if(c=='2'){
tem = "二";
}else if(c=='3'){
tem = "三";
}else if(c=='4'){
tem = "四";
}else if(c=='5'){
tem = "五";
}else if(c=='6'){
tem = "六";
}else if(c=='7'){
tem = "七";
}else if(c=='8'){
tem = "八";
}else if(c=='9'){
tem = "九";
}else if(c=='0'){
tem = "零";
}
System.out.print(tem);
}
}
}

才子_輝祝您愉快!

B. java 阿拉伯數字轉中文小寫

public class Test7 {
public static void main(String [] args){
//要輸入的數字12
String i=12+"";
transition(i);
}
//阿拉伯數字轉中文小寫?
public static void transition(String si){
String []aa={"","十","百","千","萬","十萬","百萬","千萬","億","十億"};
String []bb={"一","二","三","四","五","六","七","八","九"};
char[] ch=si.toCharArray();
int maxindex=ch.length;
// 字元的轉換
//兩位數的特殊轉換
if(maxindex==2){
for(int i=maxindex-1,j=0;i>=0;i--,j++){
if(ch[j]!=48){
if(j==0&&ch[j]==49){
System.out.print(aa[i]);
}else{
System.out.print(bb[ch[j]-49]+aa[i]);
}
}
}
//其他位數的特殊轉換,使用的是int類型最大的位數為十億
}else{
for(int i=maxindex-1,j=0;i>=0;i--,j++){
if(ch[j]!=48){
System.out.print(bb[ch[j]-49]+aa[i]);
}
}
}
}
}

輸出結果:
十二

C. java中如何把字元串中的數字轉換為漢字

publicclassTest{
publicstaticvoidmain(String[]args){
System.out.println(format("登記編號123456正在審批過程中。"));
}

publicstaticStringformat(Stringtext){
for(inti=0;i<10;i++){
text=text.replace((char)('0'+i),
"零一二三四五六七八九".charAt(i));
}
returntext;
}
}

D. java如何將數字轉為中文大寫

import org.apache.commons.lang3.StringUtils;

/**
* @Title: ConvertUpMoney
* @Description: 將數字金額轉換為大寫中文金額
* @date: 2019年6月18日 下午10:52:27
*/
public class ConvertUpMoney {

// 大寫數字
private static final String[] NUMBERS = {"零","壹","貳","叄","肆","伍","陸","柒","捌","玖"};
// 整數部分的單位
private static final String[] IUNIT = {"元","拾","佰","仟","萬","拾","佰","仟","億","拾","佰","仟","萬","拾","佰","仟"};
// 小數部分的單位
private static final String[] DUNIT = {"角","分","厘"};

/**
* 轉換為大寫的中文金額
* @param str 字元串類型的 金額數字
* @return
*/
public static String toChinese(String str) {
// 判斷輸入的金額字元串是否符合要求
if (StringUtils.isBlank(str) || !str.matches("(-)?[\\d]*(.)?[\\d]*")) {
return "抱歉,請輸入數字!";
}

if("0".equals(str) || "0.00".equals(str) || "0.0".equals(str)) {
return "零元";
}

// 判斷金額數字中是否存在負號"-"
boolean flag = false;
if(str.startsWith("-")){
// 標志位,標志此金額數字為負數
flag = true;
str = str.replaceAll("-", "");
}

// 去掉金額數字中的逗號","
str = str.replaceAll(",", "");
String integerStr;//整數部分數字
String decimalStr;//小數部分數字

// 初始化:分離整數部分和小數部分
if(str.indexOf(".")>0) {
integerStr = str.substring(0,str.indexOf("."));
decimalStr = str.substring(str.indexOf(".") + 1);
}else if(str.indexOf(".")==0) {
integerStr = "";
decimalStr = str.substring(1);
}else {
integerStr = str;
decimalStr = "";
}

// beyond超出計算能力,直接返回
if(integerStr.length()>IUNIT.length) {
return "超出計算能力!";
}

// 整數部分數字
int[] integers = toIntArray(integerStr);
// 判斷整數部分是否存在輸入012的情況
if (integers.length>1 && integers[0] == 0) {
return "抱歉,輸入數字不符合要求!";
}
// 設置萬單位
boolean isWan = isWan5(integerStr);
// 小數部分數字
int[] decimals = toIntArray(decimalStr);
// 返回最終的大寫金額
String result = getChineseInteger(integers, isWan) + getChineseDecimal(decimals);
if(flag){
// 如果是負數,加上"負"
return "負" + result;
}else{
return result;
}
}

/**
* 將字元串轉為int數組
* @param number 數字
* @return
*/
private static int[] toIntArray(String number) {
int[] array = new int[number.length()];
for(int i = 0;i<number.length();i++) {
array[i] = Integer.parseInt(number.substring(i,i+1));
}
return array;
}

/**
* 將整數部分轉為大寫的金額
* @param integers 整數部分數字
* @param isWan 整數部分是否已經是達到【萬】
* @return
*/
public static String getChineseInteger(int[] integers,boolean isWan) {
StringBuffer chineseInteger = new StringBuffer("");
int length = integers.length;
if (length == 1 && integers[0] == 0) {
return "";
}
for(int i=0; i<length; i++) {
String key = "";
if(integers[i] == 0) {
if((length - i) == 13)//萬(億)
key = IUNIT[4];
else if((length - i) == 9) {//億
key = IUNIT[8];
}else if((length - i) == 5 && isWan) {//萬
key = IUNIT[4];
}else if((length - i) == 1) {//元
key = IUNIT[0];
}
if((length - i)>1 && integers[i+1]!=0) {
key += NUMBERS[0];
}
}
chineseInteger.append(integers[i]==0?key:(NUMBERS[integers[i]]+IUNIT[length - i -1]));
}
return chineseInteger.toString();
}

/**
* 將小數部分轉為大寫的金額
* @param decimals 小數部分的數字
* @return
*/
private static String getChineseDecimal(int[] decimals) {
StringBuffer chineseDecimal = new StringBuffer("");
for(int i = 0;i<decimals.length;i++) {
if(i == 3) {
break;
}
chineseDecimal.append(decimals[i]==0?"":(NUMBERS[decimals[i]]+DUNIT[i]));
}
return chineseDecimal.toString();
}

/**
* 判斷當前整數部分是否已經是達到【萬】
* @param integerStr 整數部分數字
* @return
*/
private static boolean isWan5(String integerStr) {
int length = integerStr.length();
if(length > 4) {
String subInteger = "";
if(length > 8) {
subInteger = integerStr.substring(length- 8,length -4);
}else {
subInteger = integerStr.substring(0,length - 4);
}
return Integer.parseInt(subInteger) > 0;
}else {
return false;
}
}

// Test
public static void main(String[] args) {
String number = "12.56";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "1234567890563886.123";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "1600";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "156,0";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "-156,0";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "0.12";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "0.0";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "01.12";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "0125";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "-0125";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

number = "sdw5655";
System.out.println(number+": "+ConvertUpMoney.toChinese(number));

System.out.println(null+": "+ConvertUpMoney.toChinese(null));
}
}

E. java關於輸入一串數字轉換為漢字的問題 我是一個新手,學的還不是很多, 最近做到了輸入數字轉換為漢字題

import java.util.Scanner;
public class Shiyan {
static boolean ret = false;
static String hanzi[]={"零","一","二","三","四","五","六","七","八","九"};
static String wei[]={"","十","百","千"};
static String dan[]={"","萬","億","兆"};

public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("請輸入一串數字");
String s=in.next();
int[] shuzi = new int[s.length()];
for(int i = 0; i < s.length(); i++){
//先由字元串轉換成char,再轉換成String,然後Integer
shuzi[i] = Integer.parseInt( String.valueOf(s.charAt(i)));
}

int zushu=(int)Math.ceil(shuzi.length/4.0);

shu(shuzi,0,shuzi.length%4);
System.out.print(dan[zushu-1]);
//數字轉換漢字
for(int i=0;i<zushu;i++){//建立一個循環輸出漢字
shu(shuzi,i*4+shuzi.length%4,4);

if(zushu-i-2<0){
return;
}
System.out.print(dan[zushu-i-2]);
}
}
//1234,1234
public static void shu(int[] shuzi,int Start,int leng){

int m=0;
//數字轉換漢字
for(int i=Start;i<Start+leng;i++){//建立一個循環輸出漢字
m++;
if(i>=shuzi.length){
return;
}else if(shuzi[i]!=0){
if(ret){
System.out.print(hanzi[0]);
}
System.out.print(hanzi[shuzi[i]]);
System.out.print(wei[leng-m]);
ret = false;
}else{
ret = true;
}

}

}
}

F. JAVA輸入數字轉換成漢字

public void method2(String num){

String[] arrUnit = {"元","十","百","千","萬"}; // 計量單位
String[] arrNum = {"零","一","二","三","四","五","六","七","八","九"}; //大寫數字
String[] strNum = num.split("|");
int nNumCount = strNum.length - 2;
// String newStr = "";
for(int i=0; i<strNum.length; i++){
if(strNum[i] != null && !"".equals(strNum[i])){
int n = Integer.parseInt(strNum[i]);
switch(n){
case 0 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
case 1 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
case 2 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
case 3 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
case 4 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
case 5 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
case 6 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
case 7 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
case 8 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
case 9 : System.out.print(arrNum[n] + "" + arrUnit[nNumCount--]); break;
}
}
}
}
public static void main(String args[])
{
new Test2().method2("9999");
}

G. 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 Stack<Integer> transfer(int n){
Stack<Integer> st = new Stack<Integer>();
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();
Stack<Integer> s = tf.transfer(n);
/*
while(!s.empty()){
System.out.print(s.pop()); //測試語句
}
*/

HashMap<Integer, String> hp1 = new HashMap<Integer, 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, "九");

HashMap<Integer, String> hp2 = new HashMap<Integer, 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
輸出的是一十萬二萬三千四百五十六,也必須增加判斷。

H. 用java把阿拉伯數字轉換成中文數字,怎麼做

有個簡單的轉換,支持10億以內

public class Test {
public static void test(int d) {
// String[] str = { "零", "壹", "貳", "叄", "肆", "伍", "陸", "柒", "捌", "玖" };
String[] str = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
// String ss[] = new String[] { "元", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億" };
String ss[] = new String[] { "個", "十", "百", "千", "萬", "十", "百", "千", "億" };
String s = String.valueOf(d);
System.out.println(s);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
String index = String.valueOf(s.charAt(i));
sb = sb.append(str[Integer.parseInt(index)]);
}
String sss = String.valueOf(sb);
int i = 0;
for (int j = sss.length(); j > 0; j--) {
sb = sb.insert(j, ss[i++]);
}
System.out.println(sb);
}

public static void main(String[] args) {
test(3213);
test(912321321);
}
}


結果

不想要「個」的話就把 ss[] 數組中的「個」改成空

不過畢竟是機械的轉換,有零的話不太符合語言習慣

I. java數字轉換漢字

25187是漢字『扣』的字元編碼。
每一個漢字,字母,標點符號都有自己的字元編碼。
http://tool.webmasterhome.cn/ascii.asp 你看這個地址里的表就明白了。鍵盤上你按住alt鍵,在先鍵盤(數字區)輸入對應的數字,顯示出來的也是數字代碼對應的字元。
比如:在能輸入文字的地方:按住alt,在小鍵盤(數字區)上依次按下3,5放開所有鍵,你看到游標處顯示的是『#』

熱點內容
榮耀v20升級存儲 發布:2024-07-27 09:20:19 瀏覽:485
安卓用什麼和電腦傳圖片 發布:2024-07-27 09:02:07 瀏覽:288
存儲過程就是 發布:2024-07-27 08:56:51 瀏覽:131
c語言高級試題 發布:2024-07-27 08:48:30 瀏覽:282
ip伺服器世界上有幾台 發布:2024-07-27 08:46:18 瀏覽:394
金立手機怎麼清理緩存 發布:2024-07-27 08:38:50 瀏覽:311
iphone文件夾不顯示 發布:2024-07-27 08:18:05 瀏覽:774
y510p固態硬碟做緩存 發布:2024-07-27 07:59:34 瀏覽:128
奶塊為什麼進伺服器會排隊 發布:2024-07-27 07:57:15 瀏覽:691
資料庫表標識 發布:2024-07-27 07:50:00 瀏覽:923