面试数字转换 比如外面输入1234输出一千二百三十四,(当然外面可以随便输入什么数字) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class NumberOutput { public static void main(String[] args) throws IOException { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader bfr = new BufferedReader(isr); String input = bfr.readLine(); int number = 0; try { number = Integer.parseInt(input); } catch (NumberFormatException e) { System.out.println("数字格式错误"); System.exit(1); } int[] intArr = new int[20]; String[] strArr = new String[20]; int i = 0; while (number > 0) { intArr[i] = number % 10; i++; number /= 10; } StringBuffer buf = new StringBuffer(); for (int j = intArr.length - 1; j >= 0; j--) { if (intArr[j] != 0) { buf.append(getChinese(intArr[j])); buf.append(getPos(j)); } } System.out.println(buf); } public static String getChinese(int i) { switch (i) { case 0: return "零"; case 1: return "一"; case 2: return "二"; case 3: return "三"; case 4: return "四"; case 5: return "五"; case 6: return "六"; case 7: return "七"; case 8: return "八"; case 9: return "九"; default: return ""; } } public static String getPos(int i) { switch (i) { case 0: return ""; case 1: return "十"; case 2: return "百"; case 3: return "千"; case 4: return "万"; case 5: return "十万"; case 6: return "百万"; case 7: return "千万"; case 8: return "亿"; case 9: return "十亿"; default: return ""; } }} 帖个网页给你....不好意思直接帖出来...怕给java_net 2000鄙视了http://www.java2000.net/viewthread.jsp?tid=32 哦,上次我也问了这个问题,在网上的朋友帮助下解决了,程序如下:import java.text.DecimalFormat;import java.io.*; import java.util.*; public class ChineseCurrency{ public static void main(String[] args) { try{ System.out.print("请输入数值:"); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String st=(String)br.readLine(); double number=Double.parseDouble(st); System.out.println(toChineseCurrency(new Double(number))); }catch(IOException e){} } public static String toChineseCurrency(Object o) { if(o instanceof Number) { String s =new DecimalFormat("#.00").format(o); System.out.println(s); s =s.replaceAll("\\.", ""); char[] digit ={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'}; String unit = "仟佰拾兆仟佰拾亿仟佰拾万仟佰拾元角分"; int l=unit.length(); StringBuffer sb=new StringBuffer(unit); for(int i=s.length()-1;i>=0; i--) sb=sb.insert(l-s.length()+i,digit[(s.charAt(i)-0x30)]); s=sb.substring(l-s.length(),l+s.length()); s=s.replaceAll("零[拾佰仟]","零"). replaceAll("零{2,}","零"). replaceAll("零([兆万元])","$1").replaceAll("零[角分]",""); return s; } else{ throw new NumberFormatException(); } }} 关于SWT中combo的数据设置问题 学习java才几天,遇到一道‘菜鸟’级练习题,但对于我来说还是很难,请大家帮帮忙看看 100分:中文转换的老问题!找了6个小时了。求代码。在线等。。 请问如何在不使用java.util包的情况下使用链表实现任意长整数的加减运算? 请有经验的高手们指点下 画图问题 在java中,怎么样改变当前的工作目录? super的使用问题 怎样把一个字符串转换为大写? 您好,想学Java,请您指导,谢谢 Java 调用命令行 如何获取输出 用java做ATM取款机
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class NumberOutput { public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader bfr = new BufferedReader(isr);
String input = bfr.readLine();
int number = 0;
try {
number = Integer.parseInt(input);
} catch (NumberFormatException e) {
System.out.println("数字格式错误");
System.exit(1);
}
int[] intArr = new int[20];
String[] strArr = new String[20];
int i = 0;
while (number > 0) {
intArr[i] = number % 10;
i++;
number /= 10;
} StringBuffer buf = new StringBuffer();
for (int j = intArr.length - 1; j >= 0; j--) { if (intArr[j] != 0) {
buf.append(getChinese(intArr[j]));
buf.append(getPos(j));
}
}
System.out.println(buf);
} public static String getChinese(int i) {
switch (i) {
case 0:
return "零";
case 1:
return "一";
case 2:
return "二";
case 3:
return "三";
case 4:
return "四";
case 5:
return "五";
case 6:
return "六";
case 7:
return "七";
case 8:
return "八";
case 9:
return "九";
default:
return "";
}
} public static String getPos(int i) {
switch (i) {
case 0:
return "";
case 1:
return "十";
case 2:
return "百";
case 3:
return "千";
case 4:
return "万";
case 5:
return "十万";
case 6:
return "百万";
case 7:
return "千万";
case 8:
return "亿";
case 9:
return "十亿";
default:
return "";
}
}
}
import java.text.DecimalFormat;
import java.io.*;
import java.util.*; public class ChineseCurrency{
public static void main(String[] args) {
try{
System.out.print("请输入数值:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String st=(String)br.readLine();
double number=Double.parseDouble(st);
System.out.println(toChineseCurrency(new Double(number)));
}catch(IOException e){}
}
public static String toChineseCurrency(Object o) {
if(o instanceof Number) {
String s =new DecimalFormat("#.00").format(o);
System.out.println(s);
s =s.replaceAll("\\.", "");
char[] digit ={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
String unit = "仟佰拾兆仟佰拾亿仟佰拾万仟佰拾元角分";
int l=unit.length();
StringBuffer sb=new StringBuffer(unit);
for(int i=s.length()-1;i>=0; i--)
sb=sb.insert(l-s.length()+i,digit[(s.charAt(i)-0x30)]);
s=sb.substring(l-s.length(),l+s.length());
s=s.replaceAll("零[拾佰仟]","零"). replaceAll("零{2,}","零").
replaceAll("零([兆万元])","$1").replaceAll("零[角分]","");
return s;
} else{
throw new NumberFormatException();
}
}
}