`

java方法转换大写日期及人民币大写转换方式 .txt

阅读更多
java方法转换大写日期及人民币大写转换方式 

2012-03-02 14:38:03|  分类: java |字号 订阅
/**
* 阿拉伯数字与中文数字(大小写)之间的转换
*
*/

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* @author
*
*/
public final class SwitchMethod {
private static final String[] pattern = { "零", "壹", "贰", "叁", "肆", "伍",
   "陆", "柒", "捌", "玖" };
private static final String[] cPattern = { "", "拾", "佰", "仟", "万", "拾",
   "佰", "仟", "亿" };
private static final String ZEOR = "零";

/**
  
   * 参数名称:@param date 待转换的日期(Date格式)
   * 返回值:String 小写汉字的日期
   * 方法描述:土办法解决日期转换问题
   * @author:HY
   * 创建时间:2011-6-20 下午05:59:20
   */
public static void dateToChineseSmall(Date date) {
  DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
  String dateStr = formatter.format(date);
  System.out.println(stringToChineseSmall(dateStr));
  //return stringToChineseSmall(dateStr);
}


/**
   * 参数名称:@param dateStr 待转换的日期(String格式,结构为yyyy-MM-dd)
   * 返回值:String 小写汉字的日期
   * 方法描述:土办法解决日期转换问题
   * @author:HY
   * 创建时间:2011-6-20 下午05:59:20
   */
public static String stringToChineseSmall(String dateStr) {
 
  // 传参数的格式为 2011-11-26
  String resultStr = "";
  String[] ss = dateStr.split("-");

  for (int j = 0; j < ss[0].length(); j++) {
   switch (ss[0].charAt(j)) {
   case '0':
    resultStr += "〇";
    break;
   case '1':
    resultStr += "一";
    break;
   case '2':
    resultStr += "二";
    break;
   case '3':
    resultStr += "三";
    break;
   case '4':
    resultStr += "四";
    break;
   case '5':
    resultStr += "五";
    break;
   case '6':
    resultStr += "六";
    break;
   case '7':
    resultStr += "七";
    break;
   case '8':
    resultStr += "八";
    break;
   case '9':
    resultStr += "九";
    break;
   }
  }
  resultStr = resultStr + "年";

  if (ss[1].equals("01")) {
   resultStr += "一";
  } else if (ss[1].equals("02")) {
   resultStr += "二";
  } else if (ss[1].equals("03")) {
   resultStr += "三";
  } else if (ss[1].equals("04")) {
   resultStr += "四";
  } else if (ss[1].equals("05")) {
   resultStr += "五";
  } else if (ss[1].equals("06")) {
   resultStr += "六";
  } else if (ss[1].equals("07")) {
   resultStr += "七";
  } else if (ss[1].equals("08")) {
   resultStr += "八";
  } else if (ss[1].equals("09")) {
   resultStr += "九";
  } else if (ss[1].equals("10")) {
   resultStr += "十";
  } else if (ss[1].equals("11")) {
   resultStr += "十一";
  } else {
   resultStr += "十二";
  }
  resultStr += "月";

  if (ss[2].equals("01")) {
   resultStr += "一";
  } else if (ss[2].equals("02")) {
   resultStr += "二";
  } else if (ss[2].equals("03")) {
   resultStr += "三";
  } else if (ss[2].equals("04")) {
   resultStr += "四";
  } else if (ss[2].equals("05")) {
   resultStr += "五";
  } else if (ss[2].equals("06")) {
   resultStr += "六";
  } else if (ss[2].equals("07")) {
   resultStr += "七";
  } else if (ss[2].equals("08")) {
   resultStr += "八";
  } else if (ss[2].equals("09")) {
   resultStr += "九";
  } else if (ss[2].equals("10")) {
   resultStr += "十";
  } else if (ss[2].equals("11")) {
   resultStr += "十一";
  } else if (ss[2].equals("12")) {
   resultStr += "十二";
  } else if (ss[2].equals("13")) {
   resultStr += "十三";
  } else if (ss[2].equals("14")) {
   resultStr += "十四";
  } else if (ss[2].equals("15")) {
   resultStr += "十五";
  } else if (ss[2].equals("16")) {
   resultStr += "十六";
  } else if (ss[2].equals("17")) {
   resultStr += "十七";
  } else if (ss[2].equals("18")) {
   resultStr += "十八";
  } else if (ss[2].equals("19")) {
   resultStr += "十九";
  } else if (ss[2].equals("20")) {
   resultStr += "二十";
  } else if (ss[2].equals("21")) {
   resultStr += "二十一";
  } else if (ss[2].equals("22")) {
   resultStr += "二十二";
  } else if (ss[2].equals("23")) {
   resultStr += "二十三";
  } else if (ss[2].equals("24")) {
   resultStr += "二十四";
  } else if (ss[2].equals("25")) {
   resultStr += "二十五";
  } else if (ss[2].equals("26")) {
   resultStr += "二十六";
  } else if (ss[2].equals("27")) {
   resultStr += "二十七";
  } else if (ss[2].equals("28")) {
   resultStr += "二十八";
  } else if (ss[2].equals("29")) {
   resultStr += "二十九";
  } else if (ss[2].equals("30")) {
   resultStr += "三十";
  } else if (ss[2].equals("31")) {
   resultStr += "三十一";
  }
  resultStr += "日";
  System.out.println(resultStr);
  return resultStr;
}

/**
  *
  * @param moneyString
  * @return
  */
public static String format(String moneyString) {
  int dotPoint = moneyString.indexOf("."); // 判断是否为小数
  String moneyStr;
  // 整数部分
  if (dotPoint != -1) {
   moneyStr = moneyString.substring(0, moneyString.indexOf("."));
  } else {
   moneyStr = moneyString;
  }
  moneyStr = String.valueOf(Integer.valueOf(moneyStr)) ;
  StringBuffer ms = new StringBuffer();
  for (int i = 0; i < moneyStr.length(); i++) {
   ms.append(pattern[moneyStr.charAt(i) - 48]); // 按数组的编号加入对应大写汉字
  }

  int cpCursor = 1;
  for (int j = moneyStr.length() - 1; j > 0; j--) {
   // 在j之后加字符,不影响j对原字符串的相对位置 ,只是moneyStr.length()不断增加
   // ,insert(j,"string")就在j位置处插入,j=0时为第一位
   ms.insert(j, cPattern[cpCursor]);
   cpCursor = cpCursor == 8 ? 1 : cpCursor + 1; // 亿位之后重新循环
  }

  while (ms.indexOf("零拾") != -1) { // 当十位为零时用一个"零"代替"零拾"
   // replace的起始于终止位置
   ms.replace(ms.indexOf("零拾"), ms.indexOf("零拾") + 2, ZEOR);
  }
  while (ms.indexOf("零佰") != -1) { // 当百位为零时,同理
   ms.replace(ms.indexOf("零佰"), ms.indexOf("零佰") + 2, ZEOR);
  }
  while (ms.indexOf("零仟") != -1) { // 同理
   ms.replace(ms.indexOf("零仟"), ms.indexOf("零仟") + 2, ZEOR);
  }
  while (ms.indexOf("零万") != -1) { // 万需保留,中文习惯
   ms.replace(ms.indexOf("零万"), ms.indexOf("零万") + 2, "万");
  }
  while (ms.indexOf("零亿") != -1) { // 同上
   ms.replace(ms.indexOf("零亿"), ms.indexOf("零亿") + 2, "亿");
  }
  while (ms.indexOf("零零") != -1) {// 有连续数位出现零,即有以下情况,此时根据习惯保留一个零即可
   ms.replace(ms.indexOf("零零"), ms.indexOf("零零") + 2, ZEOR);
  }
  while (ms.indexOf("亿万") != -1) { // 特殊情况,如:100000000,根据习惯保留高位
   ms.replace(ms.indexOf("亿万"), ms.indexOf("亿万") + 2, "亿");
  }
  if(ms.length()>1){
   while (ms.lastIndexOf("零") == ms.length() - 1) { // 当结尾为零j,不必显示,经过处理也只可能出现一个零
    ms.delete(ms.lastIndexOf("零"), ms.lastIndexOf("零") + 1);
   }
  }
  System.out.println();
  return ms.toString();
}

public static void main(String[] args) {

  //dateToChineseSmall(new Date());
  stringToChineseSmall("2012-09-23");
  format("1987.45");
}


}
分享到:
评论

相关推荐

    人民币小写金额转大写金额(java版)

    ### 人民币小写金额转大写金额(Java版) #### 概述 本文将详细介绍一个Java程序,该程序用于将小写的人民币金额转换为大写形式。此转换主要用于财务、会计和其他正式场合,在这些场合中,大写金额是标准且必须的...

    java程序实现人民币大写转换

    这是一个把人民币数字转换成大写的java程序

    java实现数字转换人民币中文大写工具

    Java 实现数字转换人民币中文大写工具 Java 实现数字转换人民币中文大写工具是指使用 Java 语言将数字转换为人民币中文大写格式的工具。该工具具有很高的实用价值,特别是在人事业务系统开发中,经常需要将数字转换...

    基于java的人民币大写的转换

    在Java编程语言中,将人民币小写金额转换为大写是一项常见的需求,特别是在财务系统或者银行系统的开发中。人民币大写转换主要是为了满足会计规范,确保财务数据的准确性和规范性。下面,我们将深入探讨如何利用Java...

    java将数字转换成大写字母

    知识点二: Java 实现数字金额到中文大写字符的转换的方法 Java 实现数字金额到中文大写字符的转换可以通过使用 `PositiveIntegerToHanStr` 函数和 `NumToRMBStr` 函数。其中,`PositiveIntegerToHanStr` 函数负责...

    Java方法小写转换大写人民币

    根据给定的文件信息,我们可以总结出以下有关“Java方法小写转换大写人民币”的相关知识点: ### 一、背景介绍 在财务处理、银行系统等业务场景中,经常需要将数字金额转换为中文大写形式,特别是对于精确度较高的...

    java钱币小写转换大写

    在Java编程中,将钱币小写金额转换为大写金额是一项常见的需求,特别是在财务系统或者电商平台上,为了符合规范和避免误解,金额通常会以大写形式展示。本知识点主要探讨如何利用Java实现这一功能。 首先,我们需要...

    Rmb.rar_人民币 转换 java_人民币大写

    这个"Rmb.rar_人民币 转换 java_人民币大写"的压缩包就是一个典型的例子,它包含了一个Java程序,用于将数字转换成符合中国金融规范的人民币大写形式。这种转换对于财务报表、发票开具等场景至关重要,因为它们要求...

    java人民币大写转换

    java人民币大写转换例子。

    Java人民币金额数字转换成大写

    Java 人民币金额数字转换成大写 Java 人民币金额数字转换成大写是 Java 面试中最常见的问题之一。本文将详细介绍如何使用 Java 实现人民币金额数字转换成大写的解决方案。 Java 中的 NumberFormat 类 在 Java 中...

    java 正则数字金额转换为大写

    输入字符,通过正则验证是否为金额不超过万亿精确到小数点后两位,然后将数字转换为大写 包括后台java正则验证及前台js验证 请输入一个数字(精确到小数点后两位): fdsa54325.54 fdsa54325.54 false 请输入一个...

    java 类 金额转换成大写

    Java 类金额转换成大写 在 Java 编程语言中,金额转换成大写是非常有用的功能,特别是在财务、银行、电子商务等领域中。下面我们来详细介绍如何使用 Java 实现金额转换成大写的功能。 实例代码分析 首先,我们来...

    人民币大小写转换

    Java中关于金额小写转换为大写的工具类

    jsp页面调用applet实现人民币的大小写转换.docx

    通过JSP页面调用Applet实现人民币的大小写转换,可以实时地将用户输入的金额转换为大写或小写形式。该实现方法可以应用于电子商务、银行等领域,提供了一个便捷的金额转换工具。 六、技术要点 * 使用JSP页面调用...

    Java实现人民币大写+GUI界面

    在Java编程语言中,开发一个GUI(图形用户界面)应用程序,用于将人民币金额转换成大写,是一项常见的任务,尤其在财务系统或者银行应用中。这个功能有助于避免因数字输入错误引发的潜在问题,因为汉字的大写金额比...

    java代码-使用java输入一个字符串,将字符串中的所有大写字母转换为小写字母,所有小写字母转换为大写字的源代码

    java代码-使用java输入一个字符串,将字符串中的所有大写字母转换为小写字母,所有小写字母转换为大写字的源代码 ——学习参考资料:仅用于个人学习使用!

    人民币数字转换成汉字大写

    人民币数字转换成汉字大写 android Java 运行效率

    人民币大小写转换Java版

    java 人民币大小写转换 利用BufferString和正则表达式做的。。。不到70行的代码,注释相当的详细,当然也写了一个C版本的,要的话,可以留下Email

    JS实现人民币小写转大写

    在JavaScript编程中,有时我们需要将人民币的数字金额(小写)转换为中文的大写形式,以便于财务报表或发票的规范书写。这个过程涉及到字符映射、数字处理以及字符串操作等多个知识点。以下是对这个主题的详细说明:...

Global site tag (gtag.js) - Google Analytics