精华内容
下载资源
问答
  • java将数字转换成大写字母
  • java程序代码,阿拉伯数字转化大写
  • 主要为大家详细介绍了Java将数字金额转为大写中文金额,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Java语言实现的,将数字金额转换为人民币大写金额的例子,没有对输入数字进行校验,小数点后只保留两位,支持千分符。最大金额范围为千亿。
  • 将数字转为中文金额的大写方式(Java版) 博文链接:https://lovinchan.iteye.com/blog/202768
  • 前面给大家介绍过使用javascript,php,c#,python等语言实现人民币大写格式化,这篇文章主要介绍了java实现将数字转换成人民币大写的代码,非常的简单实用,分享给大家,需要的朋友可以参考下
  • java数字成大写金额

    2014-07-11 16:27:03
    小数都可以,这个真不错,赶紧下载来看看吧
  • java数字转换成大写字母

    千次阅读 2018-08-22 10:40:02
    //数字转字母 1-26 : A-Z  public String numberToLetter(int num) {  if (num <= 0) {  return null;  }  String letter = "";  num--;  do {  if (let...

    //数字转字母 1-26 : A-Z
        public String numberToLetter(int num) {
            if (num <= 0) {
                return null;
            }
            String letter = "";
            num--;
            do {
                if (letter.length() > 0) {
                    num--;
                }
                letter = ((char) (num % 26 + (int) 'A')) + letter;
                num = (int) ((num - num % 26) / 26);
            } while (num > 0);

            return letter;
        }    

    展开全文
  • 主要为大家详细介绍了java实现数字转换人民币中文大写工具,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java数字中文大写,钱转中文,格式化钱,自己写的,有小数,元角分
  • Java实现将数字转换成中文大写

    万次阅读 2019-02-26 16:50:33
     *程序功能:支持仟亿数字转换成中文数字表示,如(110.12 转换成壹佰壹拾元壹角贰分)  *算法思路:将数字,分成整数部分和小数部分(小数部分四舍五入到两位),分别进行转换,然后将转换后的结果合并后,生成最终...

    /**

     *程序功能:支持将仟亿数字转换成中文数字表示,如(110.12 转换成壹佰壹拾元壹角贰分)

     *算法思路:将数字,分成整数部分和小数部分(小数部分四舍五入到两位),分别进行转换,然后将转换后的结果合并后,生成最终结果 转换过程关键怎么处理中间的零,以及如何取单位。

             

    */

     

    public class ConverToChinesePart 

    {

    //需转换的数字

    private double number;

    //中文数字

    private String[] source1 = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};

    //数字单位

    private String[] source2 = {"仟","佰","拾","亿","仟","佰","拾","万","仟","佰","拾","元","角","分"};

    //构造函数

    public ConverToChinesePart(double number)

    {

    this.number = number;

    }

     

     

    //转换整数部分

    private String integerToChinese()

    {

    //整数部分

    long integerPart = (long)number;

    //将整数部分转换成字符串

    String integerStr = Long.toString(integerPart);

    //取得整数部分的长度

    int intPartLen = integerStr.length();

    //将整数部分转换成字符数组

    char[] intChars = integerStr.toCharArray();

    //当前字符是否为零的标志变量

    boolean bitState = false;

    //转换结果

    String convertResult = null;

    //当整数部分为0时

    if (intChars[0] == '0')

    {

    return "";

    }

    //当整数部分的长度为1时

    if (intPartLen == 1)

    {

    convertResult = source1[intChars[0] - 48] + source2[11];

    return convertResult;

    }else

    {

    //char类型不能直接转换成int,由于数字char类型,与整型正好相差48,则能通过char-48转换成整型。

    //循环处理每一个数字,index用于intChars定位,position用于source2定位

    for (int index = 0 , position = source2.length - intPartLen - 2; index < intChars.length; index++,position++)

    {

    //判断当前数字是否为零,将设置bitState,为零时为true,否则false

    if (intChars[index] == '0')

    {

    bitState = true;

    }else

    {

    bitState = false;

    }

    //处理第一个数

    if (index == 0)

    {

    convertResult = source1[intChars[0] - 48] + source2[position];

    //处理最后一个数字,当最后一个数字为零时

    }else if (index == intChars.length -1 && intChars[index] == '0')

    {

    //将已有的转换结果,转换成字符数组并判断最后一个字符是否零,

    //如果是零,则去掉最后一个零,加上单位元

     

    char[] temporaryChars = convertResult.toCharArray();

    if (temporaryChars[temporaryChars.length-1] == '零')

    {

    convertResult = convertResult.substring(0,convertResult.length()-1);

    }

    convertResult += "元";

    break;

    //处理最后一个数字,当最后一个数字不为零时

    }else if (index == intChars.length -1 && intChars[index] != '0')

    {

    //直接取中文数字,加上单位元

    convertResult += source1[intChars[index] - 48] + "元";

    break;

    //处理中间数字,这部分是转换最难的部分

    //先分别处理在亿、万位时如何转换

    }else

    {

    //当前处于亿位时,并且当前字符是0时

    if (source2[position] == "亿" && bitState)

    {

    //将已有的转换结果,转换成字符数组并判断最后一个字符是否零,

    //如果是零,则去掉最后一个零,加上单位亿

    char[] temporaryChars = convertResult.toCharArray();

    if (temporaryChars[temporaryChars.length-1] == '零')

    {

    convertResult = convertResult.substring(0,convertResult.length()-1);

    continue;

    }

    convertResult += "亿";

    //当前处于亿位时,并且当前字符不是0时

    }else if (source2[position] == "亿" && !bitState)

    {

    //直接取中文数字,加上单位元

    convertResult += source1[intChars[index] - 48] + source2[position];

    //当前处于万位时,并且当前字符是0时

    }else if (source2[position] == "万" && bitState)

    {

    //将已有的转换结果,转换成字符数组并判断最后一个字符是否零,

    //如果是零,则去掉最后一个零,并且去掉零,如果最后一个字符是亿,则不加万单位

    //否则要加

    char[] temporaryChars = convertResult.toCharArray();

    if (temporaryChars[temporaryChars.length-1] == '零')

    {

    convertResult = convertResult.substring(0,convertResult.length()-1);

    if (convertResult.toCharArray()[convertResult.length()-1] == '亿')

    {

    continue;

    }

     

     

    }

    convertResult += "万";

    //当前处于万位时,并且当前字符不是0时

    }else if (source2[position] == "万" && !bitState)

    {

    //直接取中文数字,加上单位元

    convertResult += source1[intChars[index] - 48] + source2[position];

    }

    else //处理不在亿、万位的数字转换

     

    {

    //当前字符不是0时

    if (!bitState)

    {

    //直接取中文数字,根据当前位置取数字单位

    convertResult += source1[intChars[index] - 48] + source2[position];

    continue;

    }else //当前字符是0时

    {

    //将已有的转换结果,转换成字符数组并判断最后一个字符是否零,

    //如果是零,不转换当前字符,如果不是零时,进行转换不带数字单位

    char[] temporaryChars = convertResult.toCharArray();

     

    if (temporaryChars[temporaryChars.length-1] == '零')

    {

    continue;

    }

    convertResult += source1[0];

    }

    }

    }

     

    }

    //返回最终整数部分转换结果

    return convertResult;

    }

    }

    /**算法:1.通过long强制转换,取得整数部分integerPart

      2.通过number-integerPart取得小数部分decimalPart,decimalPart * 100用于保留两位

     小数,由于计算处理double精度问题,用math.round函数圆整。小数部分可以出0,1,12,50

    */

    //转换小数部分

    private String decimalToChinese()

    {

    //小数部分

    int decimalPart = (int)Math.round((number - (long)number) * 100);

    //将小数部分转换成字符串.

    String decimalStr = Integer.toString(decimalPart);

    //转换结果

    String result;

    //将小数部分转换成字符数组

    char[] decimalChars = decimalStr.toCharArray();

    //取得char[]长度

    int charLen = decimalChars.length;

     

    //当charLen只有1位时,且当前char为0直接返回空字符串

    if (charLen == 1 && decimalChars[0] == '0')

    {

    return "";

    当charLen只有1位时,且当前char不为0,转换成零加当前字符的中文数字

    }else if (charLen == 1 && decimalChars[0] != '0')

    {

    result = "零" + source1[decimalChars[0] - 48] + source2[13];

    //当charLen为2位时,且最后一位字符为0

    }else if (decimalChars[1] != '0')

    {

    result = source1[decimalChars[0] - 48] + source2[12]  +  source1[decimalChars[1]- 48] + source2[13];

    //除上述条件,其它情况的转换

    }else

    {

    result = source1[decimalChars[0] - 48] + source2[12];

    }

    return result;

     

     

    }

     

     

    /**

    *转换方法

    *@return String

    */

     

    //外部接口

    public String convertToChinese()

    {

    return integerToChinese() + decimalToChinese();

     

    }

     

    //程序入口

    public static void main(String[] args) 

    {

    ConverToChinesePart conver = new ConverToChinesePart(1010101010.12);

     

    System.out.println(conver.convertToChinese());

    }

    }

    展开全文
  • /** 大写数字 */ private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; /** 整数部分的单位 */ private static final String[] IUNIT = { "元", "拾", ...
    public class MoneyUtil {
    
      /** 大写数字 */
      private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍", "陆",
          "柒", "捌", "玖" };
      /** 整数部分的单位 */
      private static final String[] IUNIT = { "元", "拾", "佰", "仟", "万", "拾", "佰",
          "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" };
      /** 小数部分的单位 */
      private static final String[] DUNIT = { "角", "分", "厘" };
    
      /**
       * 得到大写金额。
       */
      public static String toChinese(String str) {
        str = str.replaceAll(",", "");// 去掉","
        String integerStr;// 整数部分数字
        String decimalStr;// 小数部分数字
    
        // 初始化:分离整数部分和小数部分
        if (str.indexOf(".") > 0) {
          integerStr = str.substring(0, str.indexOf("."));
          decimalStr = str.substring(str.indexOf(".") + 1);
        } else if (str.indexOf(".") == 0) {
          integerStr = "";
          decimalStr = str.substring(1);
        } else {
          integerStr = str;
          decimalStr = "";
        }
        // integerStr去掉首0,不必去掉decimalStr的尾0(超出部分舍去)
        if (!integerStr.equals("")) {
          integerStr = Long.toString(Long.parseLong(integerStr));
          if (integerStr.equals("0")) {
            integerStr = "";
          }
        }
        // overflow超出处理能力,直接返回
        if (integerStr.length() > IUNIT.length) {
          System.out.println(str + ":超出处理能力");
          return str;
        }
    
        int[] integers = toArray(integerStr);// 整数部分数字
        boolean isMust5 = isMust5(integerStr);// 设置万单位
        int[] decimals = toArray(decimalStr);// 小数部分数字
        return getChineseInteger(integers, isMust5) + getChineseDecimal(decimals);
      }
    
      /**
       * 整数部分和小数部分转换为数组,从高位至低位
       */
      private static int[] toArray(String number) {
        int[] array = new int[number.length()];
        for (int i = 0; i < number.length(); i++) {
          array[i] = Integer.parseInt(number.substring(i, i + 1));
        }
        return array;
      }
    
      /**
       * 得到中文金额的整数部分。
       */
      private static String getChineseInteger(int[] integers, boolean isMust5) {
        StringBuffer chineseInteger = new StringBuffer("");
        int length = integers.length;
        for (int i = 0; i < length; i++) {
          // 0出现在关键位置:1234(万)5678(亿)9012(万)3456(元)
          // 特殊情况:10(拾元、壹拾元、壹拾万元、拾万元)
          String key = "";
          if (integers[i] == 0) {
            if ((length - i) == 13)// 万(亿)(必填)
              key = IUNIT[4];
            else if ((length - i) == 9)// 亿(必填)
              key = IUNIT[8];
            else if ((length - i) == 5 && isMust5)// 万(不必填)
              key = IUNIT[4];
            else if ((length - i) == 1)// 元(必填)
              key = IUNIT[0];
            // 0遇非0时补零,不包含最后一位
            if ((length - i) > 1 && integers[i + 1] != 0)
              key += NUMBERS[0];
          }
          chineseInteger.append(integers[i] == 0 ? key
              : (NUMBERS[integers[i]] + IUNIT[length - i - 1]));
        }
        return chineseInteger.toString();
      }
    
      /**
       * 得到中文金额的小数部分。
       */
      private static String getChineseDecimal(int[] decimals) {
        StringBuffer chineseDecimal = new StringBuffer("");
        for (int i = 0; i < decimals.length; i++) {
          // 舍去3位小数之后的
          if (i == 3)
            break;
          chineseDecimal.append(decimals[i] == 0 ? ""
              : (NUMBERS[decimals[i]] + DUNIT[i]));
        }
        return chineseDecimal.toString();
      }
    
      /**
       * 判断第5位数字的单位"万"是否应加。
       */
      private static boolean isMust5(String integerStr) {
        int length = integerStr.length();
        if (length > 4) {
          String subInteger = "";
          if (length > 8) {
            // 取得从低位数,第5到第8位的字串
            subInteger = integerStr.substring(length - 8, length - 4);
          } else {
            subInteger = integerStr.substring(0, length - 4);
          }
          return Integer.parseInt(subInteger) > 0;
        } else {
          return false;
        }
      }
    
      public static void main(String[] args) {
        String number = "1.23";
        System.out.println(number + " " + MoneyUtil.toChinese(number));
        number = "1234567890123456.123";
        System.out.println(number + " " + MoneyUtil.toChinese(number));
        number = "0.0798";
        System.out.println(number + " " + MoneyUtil.toChinese(number));
        number = "10,001,000.09";
        System.out.println(number + " " + MoneyUtil.toChinese(number));
        number = "01.107700";
        System.out.println(number + " " + MoneyUtil.toChinese(number));
        number = "01.107700";
        System.out.println(number + " " + MoneyUtil.toChinese(number));
      }
    
    }
    
    展开全文
  • 主要介绍了 java实现数字大写的方法的相关资料,希望通过本文能帮助到大家,让大家实现这样的功能,需要的朋友可以参考下
  • Java人民币金额数字转换成大写,最常见的java面试题,最合理的解答。
  • JAVA_将数字转换成大写的中文数字 public class TypeFaceUtils { /** * 给数字成大写的中文字 * * @param number * @return */ public static String getCapitalized(String number) { StringBuffer ...

    我们可以创建一个工具类

    /**
    *
    * 字体转换工具类
    *
    */
    public class TypeFaceUtils {
        /**
         * 给数字转成大写的中文字
         *
         * @param number 需要转换的字符串
         * @return
         */
        public static String getCapitalized(String number) {
            StringBuffer sb = new StringBuffer();
            if (number.length() > 0) {
                for (int i = 0; i < number.length(); i++) {
                    char n = number.charAt(i);
                    String s = String.valueOf(n);
                    if (s.equals("0")) {
                        sb.append("零");
                    } else if (s.equals("1")) {
                        sb.append("壹");
                    } else if (s.equals("2")) {
                        sb.append("贰");
                    } else if (s.equals("3")) {
                        sb.append("叁");
                    } else if (s.equals("4")) {
                        sb.append("肆");
                    } else if (s.equals("5")) {
                        sb.append("伍");
                    } else if (s.equals("6")) {
                        sb.append("陆");
                    } else if (s.equals("7")) {
                        sb.append("柒");
                    } else if (s.equals("8")) {
                        sb.append("捌");
                    } else if (s.equals("9")) {
                        sb.append("玖");
                    }
                }
            }
            return sb.toString();
        }
    }

    同理,如果我们要将大写的中文数字转换成阿拉伯数字

    /*
     * 将大写的中文数字转换成阿拉伯数字
     *
     * @Param num 需要转换的字符串
     * @return
     */
    public static String transChineseNum(String num) {
        StringBuffer sb = new StringBuffer();
        if (num.length() > 0) {
            for (int i = 0; i < num.length(); i++) {
                char n = num.charAt(i);
                String s = String.valueOf(n);
                if (s.equals("零")) {
                    sb.append("0");
                } else if (s.equals("壹")) {
                    sb.append("1");
                } else if (s.equals("贰")) {
                    sb.append("2");
                } else if (s.equals("叁")) {
                    sb.append("3");
                } else if (s.equals("肆")) {
                    sb.append("4");
                } else if (s.equals("伍")) {
                    sb.append("5");
                } else if (s.equals("陆")) {
                    sb.append("6");
                } else if (s.equals("柒")) {
                    sb.append("7");
                } else if (s.equals("捌")) {
                    sb.append("8");
                } else if (s.equals("玖")) {
                    sb.append("9");
                }
            }
        }
        return sb.toString();
    }

     

    /*
     * 测试
     */
    public static void main(String[] args) {
        System.out.println("零贰零 肆壹" + "--->" + transChineseNum("零贰零 肆壹"));
    }
    
    输出:
    零贰零 肆壹--->02041
     

     

    展开全文
  • java 阿拉伯数字转化中文大写。包括小数点的操作。是转化的源代码。可以参考这修改出所需格式。
  • 转化成 叁贰肆叁贰壹贰壹肆叁贰壹肆叁贰壹壹肆叁贰壹壹肆叁贰壹壹肆叁贰 public static void main(String[] args) { String str4=&amp;amp;quot;324321214321432114321143211432&amp;amp;quot;; ...
  • Java 将数字金额转中文大写

    千次阅读 2019-10-04 11:09:54
    一个 Java 将数字金额转中文大写的工具类,还不是很完善。 import java.util.regex.Matcher; import java.util.regex.Pattern; public class ChineseYuanUtil { private static final Pattern AMOUNT_...
  • 独立开发,实测可用, 阿拉伯和中文数字组合的字符串转阿拉伯数字的整型 包。例如: “八万三千20”就可以转整型 803020 。解压后,引用包。调用方法 在UnitTest.java 中有
  • 1、引言 昨天面试了微软的暑期实习生,二面的时候面试官...不过时间已经不多了,最后也没有完全给出bug free的代码,虽然面试应该是凉了,不过面试体验还是很好的,微软的面试官人特别温柔,最后也给出了很多友善的...
  • String[] BEFORE_SCALE = { “万”, “仟”, “佰”, “拾”, “亿”, “仟”, “佰”, “拾”, “万”, “仟”, “佰”, “拾”, “” }; String[] hanArr = { “零”, “壹”, “贰”, “叁”, “肆”, “伍”, ...
  • java将大写数字转换成小写并输出

    千次阅读 2017-04-10 21:52:35
    import java.util.Scanner;...//lowNumber方法将大写数字转换成小写并输出 private static void lowNumber(String numStr){ switch(numStr){ case "零": System.out.println(0); break; case "壹": System.
  • 例如:9999.89====>¥玖仟玖佰玖拾玖元捌角玖分 34562.762=======>¥叁万肆仟伍佰陆拾贰元柒角陆分 上传的是完整的java类;可以直接做测试,直接用;
  • 读入一串阿拉伯数字,转化为中文金额的大写方式。这是老师布置的一题回家作业。花了一天时间完成的。虽然代码比较烦琐。但是所有的几率都考虑到了。
  • Java阿拉伯数字转换大写数字 public class Test{ /** * 数字转为大写 */ public static String formatNumber(int num) { StringBuilder sb = new StringBuilder(); char[] val = String.valueOf(num)....
  •  * 数字转换为汉语中人民币的大写&lt;br&gt;  *   * @author hongten  * @contact hongtenzone@foxmail.com  * @create 2013-08-13  */ public class ceshi {    /**  * 汉语...
  • /** ... * *该类是把阿拉伯数字转换成中文大写的类。根据王大庆兄的C++程序稍做修改而,后面附有王大庆兄的C++ * *程序,如果对所附的C++程序有什么问题请与王大庆兄联系email: wang_daqing@...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 71,407
精华内容 28,562
关键字:

java将时间转换成大写数字

java 订阅