请把下面代码转换为python语言的代码,功能为把数字用汉字表示(如1001表示为一千零一)
publicclassNumberUtils{protectedNumberUtils(){}protectedstaticfinalString[]UNITS={"",...
public class NumberUtils {
protected NumberUtils() {
}
protected static final String[] UNITS = { "", "十", "百", "千",
"万", "十", "百", "千",
"亿", "十", "百", "千",
};
protected static final String[] NUMS = { "零","一", "二", "三", "四", "五",
"六", "七", "八", "九",
};
/**
* 数字转换成中文汉字
* @param value 转换的数字
* @return 返回数字转后的汉字字符串
*/
public static String translate(int value) {
//转译结果
String result = "";
for (int i = String.valueOf(value).length() - 1; i >= 0; i--) {
int r = (int) (value / Math.pow(10, i));
result += NUMS[r % 10] + UNITS[i];
}
result = result.replaceAll("零[十, 百, 千]", "零");
result = result.replaceAll("零+", "零");
result = result.replaceAll("零([万, 亿])", "$1");
result = result.replaceAll("亿万", "亿"); //亿万位拼接时发生的特殊情况
if (result.startsWith("一十"))
result = result.substring(1);
if(result.endsWith("零"))
result = result.substring(0, result.length() - 1);
return result;
}
public static void main( String[] args ) {
System.out.println( NumberUtils.translate(1000000010) );
}
} 展开
protected NumberUtils() {
}
protected static final String[] UNITS = { "", "十", "百", "千",
"万", "十", "百", "千",
"亿", "十", "百", "千",
};
protected static final String[] NUMS = { "零","一", "二", "三", "四", "五",
"六", "七", "八", "九",
};
/**
* 数字转换成中文汉字
* @param value 转换的数字
* @return 返回数字转后的汉字字符串
*/
public static String translate(int value) {
//转译结果
String result = "";
for (int i = String.valueOf(value).length() - 1; i >= 0; i--) {
int r = (int) (value / Math.pow(10, i));
result += NUMS[r % 10] + UNITS[i];
}
result = result.replaceAll("零[十, 百, 千]", "零");
result = result.replaceAll("零+", "零");
result = result.replaceAll("零([万, 亿])", "$1");
result = result.replaceAll("亿万", "亿"); //亿万位拼接时发生的特殊情况
if (result.startsWith("一十"))
result = result.substring(1);
if(result.endsWith("零"))
result = result.substring(0, result.length() - 1);
return result;
}
public static void main( String[] args ) {
System.out.println( NumberUtils.translate(1000000010) );
}
} 展开
2个回答
展开全部
#coding:gbk
import math
units=["", "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千"]
nums=["零","一", "二", "三", "四", "五","六", "七", "八", "九"]
def translate(num):
num=str(num)
res=''
for p in xrange(len(num)-1,-1,-1):
r=int(int(num)/math.pow(10,p))
print r%10,p
res+=nums[r%10]+units[p]
for (i,j) in [('零十','零'), ('零百','零'), ('零千','零')]:
res=res.replace(i,j)
while res.find('零零')!=-1:
res=res.replace('零零','零')
for (i,j) in [('零万','万'),('零亿','亿')]:
res=res.replace(i,j)
res=res.replace('亿万','亿')
if res.startswith('一十'):
res=res[2:]
if res.endswith('零'):
res=res[:-2]
return res
print(translate('1000000010'))
好丑的代码……
TableDI
2024-07-18 广告
2024-07-18 广告
当我们谈到Python与Excel的拆分时,通常指的是使用Python的库来读取Excel文件中的数据,然后根据某种逻辑(如按行、按列、按特定值等)将数据拆分成多个部分或输出到新的Excel文件中。上海悉息信息科技有限公司在处理这类任务时,...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询