十月围城

   发现我真有女生的特质,看电影的时候居然会莫名奇妙的眼睛不舒服。

  

   醒来的时候,会随意翻下床头的(中国近百年政治史),作者有语:“乃一至清廷倾覆,而此种高尚纯洁的党员不易见,吾知林(觉民)烈士当与诸烈士痛哭于九泉”。

  

 

 

  中国历史的变迁通常是由于人口的增加与土地的相对不足而产生的,这是众人所知的。而每次变迁伴随大量人口的灭亡。为了重蹈覆辙,为了保护人的生存权,于是有了计划生育。

 

  于是有了房地产经济。当如我一样在外漂泊的小青年想有个BABY的时候,就需要先有个家,即使有了家,也要再混个一年半载安稳下,才有那么点胆量要个BABY。于是当我等真正造人成功的时候,已然而立。这无形中减缓了人口的增长。当然现在的房地产经济还不够完善,诸如房价不够高,城市人口不够多等等,当房地产制度完善后,精子和卵子相遇的几率将大大减少,计划生育制度也就没有存在的必要了,而无形中减少的人口也利于社会的和谐稳定。

 

 生活在现代社会,仅会感到些许压力,不会被屠杀,而这些压力变为我追求美好生活的动力,这是多么美好的啊。

package com.utstar.db.util; /** * 工具类,用于将汉语的数字转换为阿拉伯数字 * @author utsc1243 * @date 2019年6月12日 */ public class ChineseNumToArabicNumUtil { static char[] cnArr = new char [] {'零','一','二','三','四','五','六','七','八','九'}; static char[] chArr = new char [] {'零','十','百','千','万','亿'}; static String allChineseNum = "零一二三四五六七八九十百千万亿"; static String allArabicNum = "0123456789"; static String num1 = "一二三四五六七八九"; static String num2 = "十百千万亿"; static String zero = "零"; /** * 将汉字中的数字转换为阿拉伯数字, 转换纯中文数字, * @param chineseNum * @return */ public static int chineseNumToArabicNum(String chineseNum) { int result = 0; int temp = 1;//存放一个单位的数字如:十万 int count = 0;//判断是否有chArr for (int i = 0; i < chineseNum.length(); i++) { boolean b = true;//判断是否是chArr char c = chineseNum.charAt(i); for (int j = 0; j < cnArr.length; j++) { if (c == cnArr[j]) { if(0 != count){//添加下一个单位之前,把上一个单位值添加到结果中 result += temp; temp = 1; count = 0; } // 下标,就是对应的值 temp = j; b = false; break; } } if(b){//单位{'十','百','千','万','亿'} for (int j = 0; j < chArr.length; j++) { if (c == chArr[j]) { switch (j) { case 0: temp *= 1; break; case 1: temp *= 10; break; case 2: temp *= 100; break; case 3: temp *= 1000; break; case 4: temp *= 10000; break; case 5: temp *= 100000000; break; default: break; } count++; } } } if (i == chineseNum.length() - 1) {//遍历到最后一个字符 result += temp; } } return result; } /** * 将字符串中的中文数字转换阿拉伯数字,其它非数字汉字不替换 * @param chineseNum * @return */ public static String chineseNumToArabicNumTwo(String chineseNum) { StringBuilder resultStr = new StringBuilder(); int tempresult = 0; int temp = 1;//存放一个单位的数字如:十万 int count = 0;//判断是否有单位 // 重新将 temp, count, tempresult 设置为初始值 boolean setInitial = false; // 以十百千万亿结束的在最后加 boolean isAdd = false; boolean num1flag = false; boolean num2flag = false; for (int i = 0; i < chineseNum.length(); i++) { if (setInitial) { tempresult = 0; temp = 1; count = 0; setInitial = false; } boolean b = true;//判断是否是chArr char c = chineseNum.charAt(i); if (allChineseNum.indexOf(c) >= 0) { if (i < chineseNum.length() - 1 && num1.indexOf(c) >= 0 && num1.indexOf(chineseNum.charAt(i+1)) >= 0) { num1flag = true; } for (int j = 0; j < cnArr.length; j++) { if (c == cnArr[j]) { if(0 != count){//添加下一个单位之前,把上一个单位值添加到结果中 tempresult += temp; temp = 1; count = 0; } if (!isAdd && (i == chineseNum.length() - 1 || allChineseNum.indexOf(chineseNum.charAt(i+1)) < 0)) { tempresult += j; setInitial = true; resultStr.append(tempresult); isAdd = true; } // 下标+1,就是对应的值 temp = j; b = false; break; } } if (num1flag) { resultStr.append(temp); num1flag = false; setInitial = true; continue; } boolean test = (i < chineseNum.length() - 1 && zero.indexOf(chineseNum.charAt(i+1)) >= 0 ) || (i >0 && zero.indexOf(chineseNum.charAt(i-1)) >= 0); if (i < chineseNum.length() - 1 && zero.indexOf(c) >= 0 && test ) { num2flag = true; } if(b){//单位{'十','百','千','万','亿'} for (int j = 0; j < chArr.length; j++) { if (c == chArr[j]) { switch (j) { case 0: temp *= 1; break; case 1: temp *= 10; break; case 2: temp *= 100; break; case 3: temp *= 1000; break; case 4: temp *= 10000; break; case 5: temp *= 100000000; break; default: break; } count++; } } } if (num2flag) { resultStr.append(temp); num2flag = false; setInitial = true; continue; } if (!isAdd && (i == chineseNum.length() - 1 || allChineseNum.indexOf(chineseNum.charAt(i+1)) < 0)) { tempresult += temp; setInitial = true; resultStr.append(tempresult); isAdd = true; } } else { isAdd = false; resultStr.append(c); } } return resultStr.toString(); } /** * 将数字转换为中文数字, 这里只写到了万 * @param intInput * @return */ public static String arabicNumToChineseNum(int intInput) { String si = String.valueOf(intInput); String sd = ""; if (si.length() == 1) { if (intInput == 0) { return sd; } sd += cnArr[intInput]; return sd; } else if (si.length() == 2) { if (si.substring(0, 1).equals("1")) { sd += "十"; if (intInput % 10 == 0) { return sd; } } else sd += (cnArr[intInput / 10] + "十"); sd += arabicNumToChineseNum(intInput % 10); } else if (si.length() == 3) { sd += (cnArr[intInput / 100] + "百"); if (String.valueOf(intInput % 100).length() < 2) { if (intInput % 100 == 0) { return sd; } sd += "零"; } sd += arabicNumToChineseNum(intInput % 100); } else if (si.length() == 4) { sd += (cnArr[intInput / 1000] + "千"); if (String.valueOf(intInput % 1000).length() < 3) { if (intInput % 1000 == 0) { return sd; } sd += "零"; } sd += arabicNumToChineseNum(intInput % 1000); } else if (si.length() == 5) { sd += (cnArr[intInput / 10000] + "万"); if (String.valueOf(intInput % 10000).length() < 4) { if (intInput % 10000 == 0) { return sd; } sd += "零"; } sd += arabicNumToChineseNum(intInput % 10000); } return sd; } /** * 判断传入的字符串是否全是汉字数字 * @param chineseStr * @return */ public static boolean isChineseNum(String chineseStr) { char [] ch = chineseStr.toCharArray(); for (char c : ch) { if (!allChineseNum.contains(String.valueOf(c))) { return false; } } return true; } /** * 判断数字字符串是否是整数字符串 * @param str * @return */ public static boolean isNum(String str) { String reg = "[0-9]+"; return str.matches(reg); } public static void main(String[] args) { System.out.println(chineseNumToArabicNumTwo("一千零一夜一千零一夜")); System.out.println(chineseNumToArabicNumTwo("五百七十九")); System.out.println(chineseNumToArabicNumTwo("一万零五百七十九")); System.out.println(chineseNumToArabicNumTwo("一万零七十九")); System.out.println(chineseNumToArabicNumTwo("一万零五百零九")); System.out.println(chineseNumToArabicNumTwo("十二传说")); System.out.println(chineseNumToArabicNumTwo("十二传说二")); System.out.println(chineseNumToArabicNumTwo("一百五十级")); System.out.println(chineseNumToArabicNumTwo("十二传说第一百五十级")); System.out.println(chineseNumToArabicNumTwo("十月围城")); System.out.println(chineseNumToArabicNumTwo("百变星君")); System.out.println(chineseNumToArabicNumTwo("零零七")); System.out.println(chineseNumToArabicNumTwo("九九八十一")); System.out.println(chineseNumToArabicNumTwo("一九三七")); System.out.println(arabicNumToChineseNum(3059)); System.out.println(chineseNumToArabicNumTwo("十六万")); } }System.out.println(chineseNumToArabicNumTwo("十六万"));这个结果不对,其他都是准确的,现在十万以上不行
07-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

proware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值