`
yxgyh
  • 浏览: 275584 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

java常用函数收集(二)

    博客分类:
  • JAVA
阅读更多
  1. /**  
  2.      * 人民币转成大写  
  3.      *   
  4.      * @param value  
  5.      * @return String  
  6.      */  
  7.     public static String hangeToBig(double value)   
  8.     {   
  9.         char[] hunit = { '拾''佰''仟' }; // 段内位置表示   
  10.         char[] vunit = { '万''亿' }; // 段名表示   
  11.         char[] digit = { '零''壹''贰''叁''肆''伍''陆''柒''捌''玖' }; // 数字表示   
  12.         long midVal = (long) (value * 100); // 转化成整形   
  13.         String valStr = String.valueOf(midVal); // 转化成字符串   
  14.   
  15.         String head = valStr.substring(0, valStr.length() - 2); // 取整数部分   
  16.         String rail = valStr.substring(valStr.length() - 2); // 取小数部分   
  17.   
  18.         String prefix = ""// 整数部分转化的结果   
  19.         String suffix = ""// 小数部分转化的结果   
  20.         // 处理小数点后面的数   
  21.         if (rail.equals("00"))   
  22.         { // 如果小数部分为0   
  23.             suffix = "整";   
  24.         }   
  25.         else  
  26.         {   
  27.             suffix = digit[rail.charAt(0) - '0'] + "角" + digit[rail.charAt(1) - '0'] + "分"// 否则把角分转化出来   
  28.         }   
  29.         // 处理小数点前面的数   
  30.         char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组   
  31.         char zero = '0'// 标志'0'表示出现过0   
  32.         byte zeroSerNum = 0// 连续出现0的次数   
  33.         for (int i = 0; i < chDig.length; i++)   
  34.         { // 循环处理每个数字   
  35.             int idx = (chDig.length - i - 1) % 4// 取段内位置   
  36.             int vidx = (chDig.length - i - 1) / 4// 取段位置   
  37.             if (chDig[i] == '0')   
  38.             { // 如果当前字符是0   
  39.                 zeroSerNum++; // 连续0次数递增   
  40.                 if (zero == '0')   
  41.                 { // 标志   
  42.                     zero = digit[0];   
  43.                 }   
  44.                 else if (idx == 0 && vidx > 0 && zeroSerNum < 4)   
  45.                 {   
  46.                     prefix += vunit[vidx - 1];   
  47.                     zero = '0';   
  48.                 }   
  49.                 continue;   
  50.             }   
  51.             zeroSerNum = 0// 连续0次数清零   
  52.             if (zero != '0')   
  53.             { // 如果标志不为0,则加上,例如万,亿什么的   
  54.                 prefix += zero;   
  55.                 zero = '0';   
  56.             }   
  57.             prefix += digit[chDig[i] - '0']; // 转化该数字表示   
  58.             if (idx > 0)   
  59.                 prefix += hunit[idx - 1];   
  60.             if (idx == 0 && vidx > 0)   
  61.             {   
  62.                 prefix += vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿   
  63.             }   
  64.         }   
  65.   
  66.         if (prefix.length() > 0)   
  67.             prefix += '圆'// 如果整数部分存在,则有圆的字样   
  68.         return prefix + suffix; // 返回正确表示   
  69.     }   
  70. /**  
  71.      * 全角字符转半角字符  
  72.      *   
  73.      * @param QJStr  
  74.      * @return String  
  75.      */  
  76.     public static final String QJToBJChange(String QJStr)   
  77.     {   
  78.         char[] chr = QJStr.toCharArray();   
  79.         String str = "";   
  80.         for (int i = 0; i < chr.length; i++)   
  81.         {   
  82.             chr[i] = (char) ((int) chr[i] - 65248);   
  83.             str += chr[i];   
  84.         }   
  85.         return str;   
  86.     }   
  87. /**  
  88.      * 去掉字符串中重复的子字符串  
  89.      *   
  90.      * @param str  
  91.      * @return String  
  92.      */  
  93.     private static String removeSameString(String str)   
  94.     {   
  95.         Set<String> mLinkedSet = new LinkedHashSet<String>();   
  96.         String[] strArray = str.split(" ");   
  97.         StringBuffer sb = new StringBuffer();   
  98.   
  99.         for (int i = 0; i < strArray.length; i++)   
  100.         {   
  101.             if (!mLinkedSet.contains(strArray[i]))   
  102.             {   
  103.                 mLinkedSet.add(strArray[i]);   
  104.                 sb.append(strArray[i] + " ");   
  105.             }   
  106.         }   
  107.         System.out.println(mLinkedSet);   
  108.         return sb.toString().substring(0, sb.toString().length() - 1);   
  109.     }   
  110. /**     
  111.      * 根据指定方法的参数去构造一个新的对象的拷贝并将他返回  
  112.      * @param obj 原始对象  
  113.      * @return 新对象  
  114.      * @throws NoSuchMethodException      
  115.      * @throws InvocationTargetException      
  116.      * @throws IllegalAccessException      
  117.      * @throws InstantiationException      
  118.      * @throws SecurityException      
  119.      * @throws IllegalArgumentException      
  120.      */  
  121.     @SuppressWarnings("unchecked")   
  122.     public static Object copy(Object obj) throws IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException,   
  123.                     InvocationTargetException, NoSuchMethodException   
  124.     {   
  125.         //获得对象的类型       
  126.         Class classType = obj.getClass();   
  127.   
  128.         //通过默认构造方法去创建一个新的对象,getConstructor的视其参数决定调用哪个构造方法       
  129.         Object objectCopy = classType.getConstructor(new Class[]{}).newInstance(new Object[]{});   
  130.   
  131.         //获得对象的所有属性       
  132.         Field[] fields = classType.getDeclaredFields();   
  133.   
  134.         for(int i = 0; i < fields.length; i++)   
  135.         {   
  136.             //获取数组中对应的属性       
  137.             Field field = fields[i];   
  138.   
  139.             String fieldName = field.getName();   
  140.             String stringLetter = fieldName.substring(01).toUpperCase();   
  141.   
  142.             //获得相应属性的getXXX和setXXX方法名称       
  143.             String getName = "get" + stringLetter + fieldName.substring(1);   
  144.             String setName = "set" + stringLetter + fieldName.substring(1);   
  145.   
  146.             //获取相应的方法       
  147.             Method getMethod = classType.getMethod(getName, new Class[]{});   
  148.             Method setMethod = classType.getMethod(setName, new Class[]{field.getType()});   
  149.   
  150.             //调用源对象的getXXX()方法       
  151.             Object value = getMethod.invoke(obj, new Object[]{});   
  152.   
  153.             //调用拷贝对象的setXXX()方法       
  154.             setMethod.invoke(objectCopy, new Object[]{value});   
  155.         }   
  156.   
  157.         return objectCopy;   
  158.     }   
  159.   
  160. //过滤特殊字符   
  161. public static String encoding(String src){   
  162.         if (src==null)   
  163.             return "";   
  164.         StringBuilder result=new StringBuilder();   
  165.         if (src!=null){   
  166.             src=src.trim();   
  167.             for (int pos=0;pos<src.length();pos++){   
  168.                 switch(src.charAt(pos)){   
  169.                     case '\"':result.append(""");break;   
  170.                     case '<':result.append("<");break;   
  171.                     case '>':result.append(">");break;   
  172.                     case '\'':result.append("&apos;");break;   
  173.                     case '&':result.append("&");break;   
  174.                     case '%':result.append("&pc;");break;   
  175.                     case '_':result.append("&ul;");break;   
  176.                     case '#':result.append("&shap;");break;   
  177.                     case '?':result.append("&ques;");break;   
  178.                     default:result.append(src.charAt(pos));break;   
  179.                 }   
  180.             }   
  181.         }   
  182.         return result.toString();   
  183.     }   
  184. //反过滤特殊字符   
  185.     public static String decoding(String src){   
  186.         if (src==null)   
  187.             return "";   
  188.         String result=src;   
  189.         result=result.replace(""", "\"").replace("&apos;""\'");   
  190.         result=result.replace("<""<").replace(">"">");   
  191.         result=result.replace("&""&");   
  192.         result=result.replace("&pc;""%").replace("&ul""_");   
  193.         result=result.replace("&shap;""#").replace("&ques""?");   
  194.         return result;   
  195.     }   
  196. // toUtf8String将文件名转成GBK后再附到ContentDisposition   
  197. public static String toUtf8String(String s) {   
  198.     StringBuffer sb = new StringBuffer();   
  199.     for (int i = 0; i < s.length(); i++) {   
  200.         char c = s.charAt(i);   
  201.         if (c >= 0 && c <= 255) {   
  202.             sb.append(c);   
  203.         } else {   
  204.             byte[] b;   
  205.             try {   
  206.                 b = Character.toString(c).getBytes("utf-8");   
  207.             } catch (Exception ex) {   
  208.                 System.out.println(ex);   
  209.                 b = new byte[0];   
  210.             }   
  211.             for (int j = 0; j < b.length; j++) {   
  212.                 int k = b[j];   
  213.                 if (k < 0)   
  214.                     k += 256;   
  215.                 sb.append("%" + Integer.toHexString(k).toUpperCase());   
  216.             }   
  217.         }   
  218.     }   
  219.     return sb.toString();   
  220. }   
  221. /**  
  222.      * 对字节流进行GBK解码  
  223.      *   
  224.      * @param byteBuffer  
  225.      * @return  
  226.      */  
  227.     public static String decode(ByteBuffer byteBuffer) {   
  228.         Charset charset = Charset.forName("ISO-8859-1");   
  229.         CharsetDecoder decoder = charset.newDecoder();   
  230.         try {   
  231.             CharBuffer charBuffer = decoder.decode(byteBuffer);   
  232.             return new String(charBuffer.toString().getBytes("ISO8859_1"),   
  233.                     "GBK").trim();   
  234.         } catch (Exception e) {   
  235.             return null;   
  236.         }   
  237.     }   
  238. //实现百分比   
  239. public String myPercent(int y, int z) {   
  240.         String baifenbi = "";// 接受百分比的值   
  241.         double baiy = y * 1.0;   
  242.         double baiz = z * 1.0;   
  243.         double fen = baiy / baiz;   
  244.         // NumberFormat nf = NumberFormat.getPercentInstance(); 注释掉的也是一种方法   
  245.         // nf.setMinimumFractionDigits( 2 ); 保留到小数点后几位   
  246.         DecimalFormat df1 = new DecimalFormat("##.00%"); // ##.00%   
  247.                                                             // 百分比格式,后面不足2位的用0补齐   
  248.         // baifenbi=nf.format(fen);   
  249.         baifenbi = df1.format(fen);   
  250.         return baifenbi;   
  251.     }   
分享到:
评论

相关推荐

    java常用工具类集合(也有转自他人的)

    "java常用工具类集合"是一个综合性的资源,它包含了从不同来源收集的实用工具类,旨在帮助开发者提高效率,减少代码重复。下面,我们将深入探讨这个主题,分析其中可能包含的知识点。 首先,`opslabJutil-master....

    Java多线程机制(讲述java里面与多线程有关的函数)

    Java多线程机制是Java编程中至关重要的一部分,它允许程序同时执行多个任务,提升应用程序的效率和响应性。以下是对各个知识点的详细说明: 9.1 Java中的线程: Java程序中的线程是在操作系统级别的线程基础上进行...

    Java常用代码全集.7z

    "Java常用代码全集.7z"这个压缩包文件很可能是收集了一系列Java编程中的常见代码示例,旨在帮助开发者快速理解和学习各种Java编程技巧。这个文件包含了"Java常用代码全集.doc"文档,这可能是一个详细的代码库,覆盖...

    java常用技术整理.rar

    这个名为"java常用技术整理.rar"的压缩包文件很可能包含了关于Java开发的各种核心技术、最佳实践以及常见问题的解决方案。以下是一些可能涵盖在压缩包中的Java技术点: 1. **基础语法**:包括变量、数据类型、...

    Java一些常用验证整理

    这里的【标题】"Java一些常用验证整理"和【描述】"Java一些常用验证整理,附有有关代码"指的是收集并整理了一些常见的Java验证方法。这些方法主要用于检查用户输入、数据交换等场景中的字符串格式,以确保其合法性。...

    JAVA 常用的jar包(全)

    在Java开发中,`jar`(Java Archive)文件是一种打包格式,用于收集多个类文件、相关的元数据和资源文件,以便作为一个单元分发。这里提到的"JAVA 常用的jar包(全)"可能是一个包含多种常用Java库的集合,方便开发者...

    java常用字符串方法网络收集txt版

    本资料“java常用字符串方法网络收集txt版”是一个便于阅读和学习的文本集合,特别适合放在手机上随时查阅。下面将详细介绍一些Java字符串处理的关键知识点。 1. **字符串类(String)**:Java中的字符串是不可变的,...

    JAVA中常用的jar包

    在Java编程语言中,JAR(Java Archive)文件是一种打包格式,用于收集多个类文件、相关的元数据和其他资源(如图像文件),以便于分发和使用。这些JAR包是Java应用程序和应用程序库的核心组成部分,因为它们允许开发...

    java常用单词java常用单词.doc

    6. **system** - 在Java中,System类提供了系统级的函数,如标准输入、输出流。 7. **out** - System类的一个静态字段,通常与`println()`方法一起使用,用于输出信息到控制台。 8. **print** - 输出数据到指定的...

    java常用字符串方法,网络收集,txt版

    本资源"java常用字符串方法,网络收集,txt版"主要整理了Java中常用的字符串处理方法,这对于Java程序员来说是一份宝贵的参考资料。下面,我们将详细探讨这些方法,并结合实例进行讲解。 1. **创建字符串** - `...

    几百个常用的 API 函数的简介

    "几百个常用的 API 函数的简介" 这个主题涵盖了广泛的编程领域,从操作系统级的系统调用到特定库提供的功能。 Winapi.hlp 文件很可能是一个Windows API 的帮助文档,其中包含了大量关于如何使用Windows操作系统服务...

    java实例技术手册第二版,非常好的JAVA开发实例,是高级开发者必备的

    《Java实例技术手册第二版》是一本专门为高级Java开发者量身打造的专业技术指南。这本书以其丰富的实例和深入的解析,成为Java开发者的必备参考资料。它不仅涵盖了基础的Java语法和编程概念,还深入探讨了Java在实际...

    Java常用代码大全.7z

    "Java常用代码大全.7z"这个压缩包很可能是为了帮助开发者收集和整理了一系列常见的Java编程代码片段,以便在开发过程中快速参考和使用。文档中的内容可能涵盖了各种Java编程的基础到进阶知识点。 在Java编程中,...

    java学习中收集的有用资料

    以下是一些在学习Java过程中可能会遇到的关键知识点,这些知识点也是你在“java学习中收集的有用资料”中可能包含的内容: 1. **Java基础**:这是学习Java的第一步,包括变量、数据类型、运算符、控制结构(如if...

    java常用英语

    ### Java常用英语词汇详解 #### 一、Java与JDK - **Java**: 一种流行的高级编程语言,由Sun Microsystems公司于1995年推出。它设计为平台无关性,意味着编写的Java代码可以在任何支持Java的平台上运行,而无需重新...

    java实验报告.docx

    【实验九】涉及Java常用类库的应用,可能包括集合框架中的ArrayList、LinkedList、HashMap等,以及日期时间API、IO流等常用工具类。 【实验十】讲解了标准输入/输出流的使用,以及文件读写操作,这是进行数据持久化...

    收集的java小程式

    Java的基础语法包括变量定义、数据类型(如整型、浮点型、字符型、布尔型以及引用类型)、运算符(算术、比较、逻辑、位运算等)、流程控制(如if条件语句、switch选择结构、for、while、do-while循环)以及函数定义...

    常用JAVA面试题库

    以下是一些基于"常用JAVA面试题库"的详细知识点解析: 1. **Java基础** - **数据类型**:Java有8种基本数据类型,分为整型、浮点型、字符型和布尔型。面试中可能会询问它们的范围和表示方式。 - **变量与常量**:...

    最终JAVA面试题目汇总 Java面试题集锦 Java面试题大全 java面试100题目.pdf

    二、Java集合框架 1. 集合接口:List、Set、Queue、Map接口的理解及其常用实现类如ArrayList、LinkedList、HashSet、HashMap等。 2. 泛型:理解泛型的基本用法,如类型通配符、泛型方法和泛型类。 3. Iterator与...

    自己收集的Java题库

    这份"自己收集的Java题库"是为教学和自学设计的宝贵资源,包含笔答题和选择题,旨在帮助学生和自学者深入理解Java的核心概念和技术。 笔答题库通常会涵盖更深层次的理解和分析,有助于锻炼读者解决问题的能力和逻辑...

Global site tag (gtag.js) - Google Analytics