import java.util.Scanner
fun formatMoney(arg: Long): String {
var num = arg
var reversed = 0L
//将输入的数字进行翻转
while (num != 0L) {
val digit = num % 10L
reversed = reversed * 10L + digit
num /= 10L
}
var str = reversed.toString().toCharArray()
var arr = arrayOf('园', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万', '拾', '佰', '仟')
var out_num = ""
//小写替换成大写
for ((ind, e) in str.withIndex()) {
var temp = ""
when (e) {
'0' -> temp = "零"
'1' -> temp = "壹"
'2' -> temp = "贰"
'3' -> temp = "叁"
'4' -> temp = "肆"
'5' -> temp = "伍"
'6' -> temp = "陆"
'7' -> temp = "柒"
'8' -> temp = "捌"
'9' -> temp = "玖"
}
out_num = temp + arr[ind + 1] + out_num
// println(e)
}
// println(out_num)
var result = out_num
for (i in 0 until str.size) {
result = result.replace("零拾", "零")
.replace("零佰", "零")
.replace("零仟", "零")
.replace("零万", "万")
.replace("零亿", "亿")
.replace("零零", "零")
.replace("零元", "元")
.replace("元零", "元")
.replace("亿万", "亿")
}
return result + "元整"
}
fun main() {
val read = Scanner(System.`in`)
System.out.println("请输入您想要转化的数字:");
val nextLong = read.nextLong()
if (nextLong != 0L) {
System.out.println("转换结果为:" + formatMoney(nextLong));
};
}