菜鸟问题
源代码:
public class Hao{
public static void main(String args[]) {
getHao(120);
}
public static void getHao(int s)
{
while(s>0)
{
int t=0,m;
m=s%10;
t=10*t+m;
s=s/10;
}
while(t>0)
{
int ss;
ss=t%10;
if(ss==0)
System.out.println("零");
else if (ss==1)
System.out.println("壹");
else if (ss==2)
System.out.println("贰");
else if (ss==3)
System.out.println("叁");
else if (ss==4)
System.out.println("肆");
else if (ss==5)
System.out.println("伍");
else if (ss==6)
System.out.println("陆");
else if (ss==7)
System.out.println("柒");
else if (ss==8)
System.out.println("捌");
else if (ss==9)
System.out.println("玖");
else
System.out.println("");
t= t/10;
}
}
}
错误:
E:\Java>javac Hao.java
Hao.java:14: 找不到符号
符号: 变量 t
位置: 类 Hao
while(t>0)
^
Hao.java:17: 找不到符号
符号: 变量 t
位置: 类 Hao
ss=t%10;
^
Hao.java:40: 找不到符号
符号: 变量 t
位置: 类 Hao
t= t/10;
^
Hao.java:40: 找不到符号
符号: 变量 t
位置: 类 Hao
t= t/10;
^
4 错误
急求答案!!!知道的大虾们麻烦下了...谢啦!
[解决办法]
public class Hao { static int t = 0, m; public static void main(String args[]) { getHao(120); } public static void getHao(int s) { while (s > 0) { m = s % 10; t = 10 * t + m; s = s / 10; } while (t > 0) { int ss; ss = t % 10; if (ss == 0) System.out.println("零"); else if (ss == 1) System.out.println("壹"); else if (ss == 2) System.out.println("贰"); else if (ss == 3) System.out.println("叁"); else if (ss == 4) System.out.println("肆"); else if (ss == 5) System.out.println("伍"); else if (ss == 6) System.out.println("陆"); else if (ss == 7) System.out.println("柒"); else if (ss == 8) System.out.println("捌"); else if (ss == 9) System.out.println("玖"); else System.out.println(""); t = t / 10; } }}
[解决办法]
这个...代码...
可以这样...
String[] ary = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};System.out.println(ary[ss]);
[解决办法]
看了LZ的题,我想到关于人民币123。。。转换成大写类,顺便分享给大家
/* * 人民币转换为大写 * @author hxk * @Date 2011-6-02 */public final class ChangeRMB {// 每个数字对应的大写 private static final String[] num = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", };// 从低到高排列的单位 private static final String[] bit = { "圆", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿" };// 金额里面的角和分 private static final String[] jf={ "角","分" }; /** * 处理金额的整数部分,返回"...圆整" * @param integer * @return String * @throws Exception */ public static String praseUpcaseRMB(String integer)throws Exception{ StringBuilder sbdr=new StringBuilder(""); int j=integer.length(); if(j>bit.length){ throw new Exception("\n只能处理亿万亿以内的数据(含亿万亿)!"); } char[] rmb=integer.toCharArray(); for (int i = 0; i < rmb.length; i++) { int numLocate=Integer.parseInt(""+rmb[i]); //大写数字位置 int bitLocate=j-1-i; //数字单位的位置 /* * 连续大写零只添加一个 */ if(numLocate==0 ){ if(!sbdr.toString().endsWith(num[0])){ sbdr.append(num[numLocate]); } continue; } /* * 下面的if语句保证 * 10065004583.05-->壹佰亿陆仟伍佰万肆仟伍佰捌拾叁圆零伍分 */ if(bit[bitLocate].equals("仟")){ String s=sbdr.toString(); if(!s.endsWith(bit[bitLocate+1]) && s.length()>0){ if (s.endsWith(num[0])) { sbdr.deleteCharAt(sbdr.length() - 1); } sbdr.append(bit[bitLocate+1]); } } sbdr.append(num[numLocate]); sbdr.append(bit[bitLocate]); }//end for /* * 去掉结尾"零"后,补全 */ if(sbdr.toString().endsWith(num[0])){ sbdr.deleteCharAt(sbdr.length()-1); sbdr.append("圆整"); }else{ sbdr.append("整"); } return sbdr.toString(); } /** * 处理带小数的金额,整数部分交由上一个方法处理,小数部分自己处理 * @param integer * @param decimal * @return String * @throws Exception */ public static String praseUpcaseRMB(String integer, String decimal)throws Exception{ String ret=ChangeRMB.praseUpcaseRMB(integer); ret=ret.split("整")[0]; //处理整数部分 StringBuilder sbdr=new StringBuilder(""); sbdr.append(ret); char[] rmbjf=decimal.toCharArray(); for(int i=0;i<rmbjf.length;i++){ int locate=Integer.parseInt(""+rmbjf[i]); if(locate==0 ){ if(!sbdr.toString().endsWith(num[0])){ sbdr.append(num[locate]); } continue; } sbdr.append(num[locate]); sbdr.append(jf[i]); } return sbdr.toString(); } /** * 将double形式的字符串(有两位小数或无小数)转换成人民币的大写格式 * @param doubleStr * @return String * @throws Exception * 如:100.00 */ public static String doChangeRMB(String doubleStr)throws Exception{ String result=null; if (doubleStr.contains(".")) { //金额带小数 int dotloc=doubleStr.indexOf("."); int strlen=doubleStr.length(); String integer=doubleStr.substring(0, dotloc); String decimal=doubleStr.substring(dotloc+1, strlen); result=ChangeRMB.praseUpcaseRMB(integer, decimal); } else { //金额是整数 String integer=doubleStr; result=ChangeRMB.praseUpcaseRMB(integer); } return result; } /** * 将double形式的字符串(有两位小数或无小数)转换成人民币的大写格式 * @param doubleStr * @return String * @throws Exception * 如100,00 */ public static String doChangeRMBByStr(String doubleStr)throws Exception{ String result=null; if (doubleStr.contains(",")||doubleStr.contains(".")) { //金额带小数 int dotloc=doubleStr.indexOf(",")>0?doubleStr.indexOf(","):doubleStr.indexOf("."); int strlen=doubleStr.length(); String integer=doubleStr.substring(0, dotloc); String decimal=doubleStr.substring(dotloc+1, strlen); result=ChangeRMB.praseUpcaseRMB(integer, decimal); } else { //金额是整数 String integer=doubleStr; result=ChangeRMB.praseUpcaseRMB(integer); } return result; } /** * 将double数值(有两位小数或无小数)转换成人民币的大写格式 * @param rmbDouble * @return String * @throws Exception */ public static String doChangeRMB(double rmbDouble)throws Exception{ String result=null; double theInt=Math.rint(rmbDouble); if(theInt > rmbDouble){ theInt-=1; } double theDecimal=rmbDouble-theInt; String integer=new Long((long)theInt).toString(); String decimal=""+Math.round(theDecimal*100); if(decimal.equals("0")){ result=ChangeRMB.praseUpcaseRMB(integer); }else{ result=ChangeRMB.praseUpcaseRMB(integer, decimal); } return result; } }