字符转字符串并转换成大写的问题
<%String amount = NumberUtil.formatNumberTwo(subDto.getAmount());
String subInput = amount.substring(0, amount.indexOf('.'));
int pstn =subInput.length();
char chs[]=subInput.toCharArray();
StringBuffer strs = new StringBuffer("");
for (int i = 0; i < chs.length; i++)
{
strs.append(StringUtil.to_upper(chs[i]));
}
strs.reverse();
for(int j = 0; j<(7-strs.length());j++)
{
strs.append(".");
}
chs[]=strs.toString().toCharArray();
%>
function to_upper( a)
{
switch(a){
case '0' : return '零'; break;
case '1' : return '壹'; break;
case '2' : return '贰'; break;
case '3' : return '叁'; break;
case '4' : return '肆'; break;
case '5' : return '伍'; break;
case '6' : return '陆'; break;
case '7' : return '柒'; break;
case '8' : return '捌'; break;
case '9' : return '玖'; break;
default: return '' ;
}
}
现在情况是 能取到值 amount = 245698 我现在想做一个字符串组chs 把其中的数字转成中文大写并保存在chs[]组中
请教各位给修正源码!! 谢谢
--------------------编程问答-------------------- switch case --------------------编程问答-------------------- 这个………………有必要问? --------------------编程问答-------------------- package com.studjava;
public class CommonUtil{
private final static String upArr[] = {
"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"
} ;
public static String toUp(char cDigit){
//必须确定 sDigit 为 0~9 的一位数字
int iDigit = Integer.parseInt(String.valueOf(cDigit)) ;
System.out.println(cDigit);
return upArr[iDigit] ;
}
public static void main(String[] args) {
int iSrc = 23855 ;
String sSrc = String.valueOf(iSrc) ;
char[] arrChar = sSrc.toCharArray() ;
int len = arrChar.length ;
String []arrDesc = new String[len] ;
for (int i = len - 1; i >= 0; i--){
arrDesc[len-1 -i] = toUp(arrChar[i]) ;
}
for (int i = 0; i < len; i++){
System.out.print(arrDesc[i]) ;
}
}
} --------------------编程问答-------------------- 5
5
8
3
2
伍伍捌叁贰 --------------------编程问答--------------------
学习咯 --------------------编程问答-------------------- package com.studjava;
public class CommonUtil{
private final static String upArr[] = {
"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"
} ;
public static String toUp(char cDigit){
//必须确定 sDigit 为 0~9 的一位数字
int iDigit = Integer.parseInt(String.valueOf(cDigit)) ;
return upArr[iDigit] ;
}
//234 -->贰叁肆 -正向
public static String[] charToUpString(char [] cArr){
int len = cArr.length ;
String []arrDesc = new String[len] ;
for (int i = 0; i < len; i++){
arrDesc[i] = toUp(cArr[i]) ;
}
return arrDesc ;
}
//234 -->肆叁贰 -反向
public static String[] charToUpRevString(char [] cArr){
int len = cArr.length ;
String []arrDesc = new String[len] ;
for (int i = len - 1; i >= 0; i--){
arrDesc[len-1 -i] = toUp(cArr[i]) ;
}
return arrDesc ;
}
public static void main(String[] args) {
int iSrc = 23855 ;
String sSrc = String.valueOf(iSrc) ;
char[] arrChar = sSrc.toCharArray() ;
int len = arrChar.length ;
String []str1 = charToUpString(arrChar) ;
System.out.print("正向:") ;
for (int i = 0; i < len; i++){
System.out.print(str1[i]) ;
}
System.out.println("") ;
String []str2 = charToUpRevString(arrChar) ;
System.out.print("反向:") ;
for (int i = 0; i < len; i++){
System.out.print(str2[i]) ;
}
}
} --------------------编程问答-------------------- 正向:贰叁捌伍伍
反向:伍伍捌叁贰 --------------------编程问答-------------------- 3楼正解。 --------------------编程问答--------------------
不错
补充:Java , Web 开发