scala练手之数字转汉字小工具

输入数字,转换成汉字,在统计数据量时很好用,而输入数字转成大写汉字,可以用于填写收据报销单哦

下载链接

http://files.cnblogs.com/files/starwater/toChinese.part1.rar

http://files.cnblogs.com/files/starwater/toChinese.part2.rar

效果图如下:

直接上代码

object toChinese {  def toChinese(number: Long) = {    var count = number.toString.reverse.toList.map(_.toString.toInt)    val num = List("零", "一", "二", "三", "四", "五", "六", "七", "八", "九")    val numtype = List("", "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千")    var ch: List[String] = Nil    for (i <- 0 until count.length - 1) {      if (count(i + 1) == 0 && count(i) != 0) {        ch = ch :+ "零" + (num(count(i)) + numtype(i))      }      if (count(i + 1) != 0 && count(i) != 0) {        ch = ch :+ (num(count(i)) + numtype(i))      }      else if (i == 4) {        ch = ch :+ "万"      }      else if (i == 8) {        ch = ch :+ "亿"      }    }    ch = ch :+ (num(count.last) + numtype(count.length - 1))    ch.reverse.mkString("")  }  def toChinesemoney(number: Long) = {    var count = number.toString.reverse.toList.map(_.toString.toInt)    val num = List("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")    val numtype = List("元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟")    var ch: List[String] = Nil    for (i <- 0 until count.length - 1) {      if (count(i + 1) == 0 && count(i) != 0) {        ch = ch :+ "零" + (num(count(i)) + numtype(i))      }      if (count(i + 1) != 0 && count(i) != 0) {        ch = ch :+ (num(count(i)) + numtype(i))      }      else if (i == 4) {        ch = ch :+ "万"      }      else if (i == 8) {        ch = ch :+ "亿"      }    }    ch = ch :+ (num(count.last) + numtype(count.length - 1))    ch.reverse.mkString("")  }

def main(args: Array[String]) = {    println("**********************************************")    println("*********欢迎使用最帅的数字转汉字工具*********")    while (1==1){      var flag=true      while (flag){        try {      println("请选择使用方式 A:数字转汉字 B:数字转大写汉字")      println("选择后可输入:q重新选择")      val line0 = Console.readLine()      var flag=true      while (flag) {        if (line0 == "A") {          println(">>>>>>>>>请输入数字")          val line1 = Console.readLine()          if(line1==":q"){flag=false} else{println(toChinese(line1.toLong))}        }        else if (line0 == "B") {          println(">>>>>>>>>请输入数字")          val line2 = Console.readLine()          if(line2==":q"){flag=false} else{println(toChinesemoney(line2.toLong))}        }        else{println("!!!输入有误!!!");flag=false}      }      }catch {        case e: Exception => {          println("!!!输入有误!!!")          println(">>>>>>>>>错误信息:" + e.getMessage)        }      }}}    }}

欢迎下载使用,谢谢

				
时间: 2024-12-24 11:31:35

scala练手之数字转汉字小工具的相关文章

数字转换为汉字小算法

/** * 将数字转换成对应的汉字 * * @param number * 数字 * @return 对应的汉字 */ public static String intToChinese(int number) { char[] val = String.valueOf(number).toCharArray(); int len = val.length; StringBuilder sb = new StringBuilder(); for (int i = 0; i < len; i++)

python游戏练手--猜数字

#!/usr/bin/env python#coding=utf-8 import random #将玩家猜测过的数字保存到这个变量中,因为玩家还没有做过任何猜测,所以保存的是整数0guessesTaken = 0 print('Hello! What is your name?')MyName = input() #判断输入到MyName中的值是否存在#不存在的话,就告诉用户需要输入字符串,不能直接回车或者空格代替if MyName == "": print('Hello! What

练手小项目(2)-生活小助手--星座运势查询

上一篇内容 练手小项目(2)-生活小助手 今天星期一.趁着中午的歇息时间把 第二个写出来 星座运势,近期看看极客学院 用聚合数据做了天气预报的视频教程,不好评价他.看他在后面的代码变更那么大,我就知道,后面肯定做不下去,于是.就改代码了.代码变更那么大,有几个人会去理解,还不如我自己写................ 先看布局 点击去就是一个spinner 用几个textview显示查询内容   布局有点丑,主要是给别人做功能,UI我就不考虑 关于UI  我还是要贴下代码.假设你有想法就把他美化

java客房管理小项目,适合java小白练手的项目!

java客房管理小项目 这个客房管理小项目,适合java初学者练手.功能虽然不多,但是内容很齐全! 喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我! 祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!共有5层,每层10间客房,以数字101--509标示:具有入住,退房,搜索,退出四个简单功能: public class Hotel { static final int floor = 5; static fina

java客房管理小项目,适合小白练手

java客房管理小项目这个客房管理小项目,适合java初学者练手.功能虽然不多,但是内容很齐全!喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我!共有5层,每层10间客房,以数字101--509标示:具有入住,退房,搜索,退出四个简单功能:public class Hotel {static final int floor = 5;static final int order = 10;private static int countFlo

【辅助程序】练手小程序:记录外网动态IP地址

练手小程序 程序作用:对IP实时记录: 1.定时获取外网IP,存储在本地文件中: 编写思路: 1)收集获取外网的API接口 http://bbs.125.la/thread-13838979-1-1.html 2)定时执行 http://blog.csdn.net/imzoer/article/details/8699083/ 4)记录本地文件 1 # -*- coding: utf-8 -*- 2 # -*- coding: gbk -*- 3 # Date: 2016/4/27 4 # Cr

WEBGL学习笔记(七):实践练手1-飞行类小游戏之游戏控制

接上一节,游戏控制首先要解决的就是碰撞检测了 这里用到了学习笔记(三)射线检测的内容了 以鸟为射线原点,向前.上.下分别发射3个射线,射线的长度较短大概为10~30. 根据上一节场景的建设,我把y轴设为前进方向,z轴设为高度~ 如果射线返回有结果,那么说明鸟遇到了障碍物.代码如下: var raycaster1 = new THREE.Raycaster(birdmesh.position, new THREE.Vector3(0, 1, 0), 0, 30) var raycaster2 =

练手小项目(2)-生活小助手--周公解梦

第一篇 练手小项目(2)-生活小助手--身份证查询 第二篇 练手小项目(2)-生活小助手--星座运势查询 我在想就是第三个药品查询要不要写出来,因为布局还在讨论用什么展示,因为药品有很多展示,我也不知道用什么展示. 这是一个很纠结的事情 我就先写第四个吧 周公解梦 其中代码有点错误我想用for循环进行判断返回数据有几个 但是总是失败,如果有看本篇贴子,解决了,给我留个言,在这篇帖子我只显示一个结果 布局跟简单的说 一个Edittext 获取数据,然后button进行数据提取发送到服务器 返回的数

基于MNIST手写数字数据集的数字识别小程序

30行代码奉上!(MNIST手写数字的识别,识别率大约在91%,简单尝试的一个程序,小玩具而已) 1 import tensorflow.examples.tutorials.mnist.input_data as input_data 2 import tensorflow as tf 3 mnist = input_data.read_data_sets('/temp/', one_hot=True) 4 5 #设置 6 x = tf.placeholder(tf.float32,[None