`
vip02
  • 浏览: 5862 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
最近访客 更多访客>>
社区版块
存档分类
最新评论

JAVA工具类

阅读更多
/**
* 
* 字符串操作的工具类
* @since 1.0
* 
*/
public class StringUtil {
   
    /**
     * 将一字符串转换成拼音首字母
     * 
     * @since 1.1
     * @param strText
     *            字符串
     * @return 字符串对应的拼音首字母
     */
    public static String getFirstPY(String strText) {
        if (strText == null || strText.trim().length() == 0)
            return "";
        String ret = "";
        for (int i = 0; i < strText.length(); i++) {
            char ch = strText.charAt(i);
            if ('\u4E00' <= ch && '\u9FA5' >= ch)
                ret = ret + strChineseFirstPY.charAt(ch - 19968);
            else
                ret = ret + ch;
        }

        return ret;
    }

    /**
     * 替换字符串
     * 
     * @since 1.1
     * @param strSc
     *            需要进行替换的字符串
     * @param oldStr
     *            源字符串
     * @param newStr
     *            替换后的字符串
     * @return 替换后对应的字符串
     */
    public static String replace(String strSc, String oldStr, String newStr) {
        String ret = strSc;
        if (ret != null && oldStr != null && newStr != null) {
            ret = strSc.replaceAll(oldStr, newStr);
        }
        return ret;
    }

    /**
     * 替换字符串,修复java.lang.String类的replaceAll方法时第一参数是字符串常量正则时(如:"address".
     * replaceAll("dd","$");)的抛出异常:java.lang.StringIndexOutOfBoundsException:
     * String index out of range: 1的问题。
     * 
     * @since 1.2
     * @param strSc
     *            需要进行替换的字符串
     * @param oldStr
     *            源字符串
     * @param newStr
     *            替换后的字符串
     * @return 替换后对应的字符串
     */
    public static String replaceAll(String strSc, String oldStr, String newStr) {
        int i = -1;
        while ((i = strSc.indexOf(oldStr)) != -1) {
            strSc = new StringBuffer(strSc.substring(0, i)).append(newStr)
                    .append(strSc.substring(i + oldStr.length())).toString();
        }
        return strSc;
    }

    /**
     * 将字符串转换成HTML格式的字符串
     * 
     * @since 1.1
     * @param str
     *            需要进行转换的字符串
     * @return 转换后的字符串
     */
    public static String toHtml(String str) {
        String html = str;
        if (str == null || str.length() == 0) {
            return "";
        } else {
            html = replace(html, "&", "&");
            html = replace(html, "<", "<");
            html = replace(html, ">", ">");
            html = replace(html, "\r\n", "\n");
            html = replace(html, "\n", "<br>\n");
            html = replace(html, "\"", """);
            html = replace(html, " ", " ");
            return html;
        }
    }

    /**
     * 将HTML格式的字符串转换成常规显示的字符串
     * 
     * @since 1.1
     * @param str
     *            需要进行转换的字符串
     * @return 转换后的字符串
     */
    public static String toText(String str) {
        String text = str;
        if (str == null || str.length() == 0) {
            return "";
        } else {
            text = replace(text, "&", "&");
            text = replace(text, "<", "<");
            text = replace(text, ">", ">");
            text = replace(text, "<br>\n", "\n");
            text = replace(text, "<br>", "\n");
            text = replace(text, """, "\"");
            text = replace(text, " ", " ");
            return text;
        }
    }

    /**
     * 将一字符串数组以某特定的字符串作为分隔来变成字符串
     * 
     * @since 1.0
     * @param strs
     *            字符串数组
     * @param token
     *            分隔字符串
     * @return 以token为分隔的字符串
     */
    public static String join(String[] strs, String token) {
        if (strs == null)
            return null;
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < strs.length; i++) {
            if (i != 0)
                sb.append(token);
            sb.append(strs[i]);
        }
        return sb.toString();
    }

    /**
     * 将一字符串以某特定的字符串作为分隔来变成字符串数组
     * 
     * @since 1.0
     * @param str
     *            需要拆分的字符串("@12@34@56")
     * @param token
     *            分隔字符串("@")
     * @return 以token为分隔的拆分开的字符串数组
     */
    public static String[] split(String str, String token) {
        String temp = str.substring(1, str.length());
        return temp.split(token);
    }

    /**
     * 验证字符串合法性
     * 
     * @since 1.0
     * @param str
     *            需要验证的字符串
     * @param test
     *            非法字符串(如:"~!#$%^&*()',;:?")
     * @return true:非法;false:合法
     */
    public static boolean check(String str, String test) {
        if (str == null || str.equals(""))
            return true;
        boolean flag = false;
        for (int i = 0; i < test.length(); i++) {
            if (str.indexOf(test.charAt(i)) != -1) {
                flag = true;
                break;
            }
        }
        return flag;
    }

    /**
     * 将数值型字符串转换成Integer型
     * 
     * @since 1.0
     * @param str
     *            需要转换的字符型字符串
     * @param ret
     *            转换失败时返回的值
     * @return 成功则返回转换后的Integer型值;失败则返回ret
     */
    public static Integer String2Integer(String str, Integer ret) {
        try {
            return Integer.parseInt(str);
        } catch (NumberFormatException e) {
            return ret;
        }
    }

    /**
     * 将数值型转换成字符串
     * 
     * @since 1.0
     * @param it
     *            需要转换的Integer型值
     * @param ret
     *            转换失败的返回值
     * @return 成功则返回转换后的字符串;失败则返回ret
     */
    public static String Integer2String(Integer it, String ret) {
        try {
            return Integer.toString(it);
        } catch (NumberFormatException e) {
            return ret;
        }
    }

    /**
     * 比较两字符串大小(ASCII码顺序)
     * 
     * @since 1.1
     * @param str1
     *            参与比较的字符串1
     * @param str2
     *            参与比较的字符串2
     * @return str1>str2:1;str1<str2:-1;str1=str2:0
     */
    public static int compare(String str1, String str2) {//
        if (str1.equals(str2)) {
            return 0;
        }
        int str1Length = str1.length();
        int str2Length = str2.length();
        int length = 0;
        if (str1Length > str2Length) {
            length = str2Length;
        } else {
            length = str1Length;
        }
        for (int i = 0; i < length; i++) {
            if (str1.charAt(i) > str2.charAt(i)) {
                return 1;
            }
        }
        return -1;
    }

    /**
     * 将阿拉伯数字的钱数转换成中文方式
     * 
     * @since 1.1
     * @param num
     *            需要转换的钱的阿拉伯数字形式
     * @return 转换后的中文形式
     */
    public static String num2Chinese(double num) {
        String result = "";
        String str = Double.toString(num);
        if (str.contains(".")) {
            String begin = str.substring(0, str.indexOf("."));
            String end = str.substring(str.indexOf(".") + 1, str.length());
            byte[] b = begin.getBytes();
            int j = b.length;
            for (int i = 0, k = j; i < j; i++, k--) {
                result += getConvert(begin.charAt(i));
                if (!"零".equals(result.charAt(result.length() - 1) + "")) {
                    result += getWei(k);
                }
                System.out.println(result);

            }
            for (int i = 0; i < result.length(); i++) {
                result = result.replaceAll("零零", "零");
            }
            if ("零".equals(result.charAt(result.length() - 1) + "")) {
                result = result.substring(0, result.length() - 1);
            }
            result += "元";
            byte[] bb = end.getBytes();
            int jj = bb.length;
            for (int i = 0, k = jj; i < jj; i++, k--) {
                result += getConvert(end.charAt(i));
                if (bb.length == 1) {
                    result += "角";
                } else if (bb.length == 2) {
                    result += getFloat(k);
                }
            }
        } else {
            byte[] b = str.getBytes();
            int j = b.length;
            for (int i = 0, k = j; i < j; i++, k--) {
                result += getConvert(str.charAt(i));
                result += getWei(k);
            }
        }
        return result;
    }

    private static String getConvert(char num) {
        if (num == '0') {
            return "零";
        } else if (num == '1') {
            return "一";
        } else if (num == '2') {
            return "二";
        } else if (num == '3') {
            return "三";
        } else if (num == '4') {
            return "四";
        } else if (num == '5') {
            return "五";
        } else if (num == '6') {
            return "六";
        } else if (num == '7') {
            return "七";
        } else if (num == '8') {
            return "八";
        } else if (num == '9') {
            return "九";
        } else {
            return "";
        }
    }

    private static String getFloat(int num) {
        if (num == 2) {
            return "角";
        } else if (num == 1) {
            return "分";
        } else {
            return "";
        }
    }

    private static String getWei(int num) {
        if (num == 1) {
            return "";
        } else if (num == 2) {
            return "十";
        } else if (num == 3) {
            return "百";
        } else if (num == 4) {
            return "千";
        } else if (num == 5) {
            return "万";
        } else if (num == 6) {
            return "十";
        } else if (num == 7) {
            return "百";
        } else if (num == 8) {
            return "千";
        } else if (num == 9) {
            return "亿";
        } else if (num == 10) {
            return "十";
        } else if (num == 11) {
            return "百";
        } else if (num == 12) {
            return "千";
        } else if (num == 13) {
            return "兆";
        } else {
            return "";
        }
    }
    /**
     * 将字符串的首字母改为大写
     * 
     * @since 1.2
     * @param str
     *            需要改写的字符串
     * @return 改写后的字符串
     */
    public static String firstToUpper(String str){
        return str.substring(0,1).toUpperCase()+str.substring(1);
    }

 

分享到:
评论

相关推荐

    30个java工具类

    [工具类] 获得汉字拼音首字母的java工具类.java.txt [工具类] 获取绝对路径 .java.txt [工具类] 记录log日志文件的工具类 .java.txt [工具类] 连接数据库的工具类 .java.txt [工具类] 使用Java程序来实现HTTP文件的...

    Rabbitmq工具类,java工具类RabbitmqUtil

    总的来说,`RabbitmqUtil`是一个强大的Java工具类,它简化了RabbitMQ的使用,使得开发者能更专注于业务逻辑,而不是底层的消息传递细节。只需根据自己的RabbitMQ服务器配置调整初始化参数,就可以轻松地在项目中集成...

    Java工具类合集

    本资源名为“Java工具类合集”,显然是一份集合了多种功能的Java工具类库,可能包含了一系列开源框架中的实用工具类。 首先,我们可以从“mysql版本”这个标签推测,这个合集中可能包含了与MySQL数据库交互相关的...

    常用Java工具类

    以下是对标题和描述中提到的一些常用Java工具类的详细解释: 1. **数据库池工具类**:数据库连接池是管理数据库连接的一种机制,它能有效地复用已存在的数据库连接,避免频繁创建和关闭连接导致的性能开销。常见的...

    【强2】30个java工具类

    使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中...

    JAVA 工具类 项目

    在Java编程中,工具类(Utility Class)是包含静态方法的类,这些方法通常执行某种通用操作或提供一些辅助功能。这些工具类可以极大地提高代码的可读性和可重用性,减少代码冗余,使得开发者能更专注于业务逻辑。在...

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

    java工具类java工具类java工具类

    Java工具类是程序员在开发过程中经常使用的一类代码集合,它们提供了一系列静态方法,用于执行通用的任务,如字符串处理、日期时间操作、IO流管理等。这些工具类大大提高了开发效率,减少了代码重复,使得代码更加...

    比较全的java工具类

    Java工具类是编程中不可或缺的一部分,它们提供了许多实用的功能,帮助开发者提高代码的效率和可维护性。在Java中,工具类通常包含了各种通用的方法,适用于多种场景,减少了重复编码的工作。以下是一些主要的Java...

    java工具类

    Java工具类是Java编程语言中一个非常重要的组成部分,它们提供了许多实用的方法,帮助开发者更高效地处理各种编程任务。在Java中,工具类通常被设计为静态方法集合,不依赖于实例化对象,可以直接调用类中的方法进行...

    Java工具类

    本资源提供的五个Java工具类涵盖了日期时间处理、数字格式化、参数操作、字符串操作以及数据校验等多个方面,这对于开发人员来说是非常实用的。下面我们将对每个工具类进行详细解释。 1. **日期时间工具类**: 这...

    JAVA工具类(整合,xml,json,MD5,加密解密)

    本资源提供的"JAVA工具类"整合了XML处理、JSON操作、MD5加密以及加解密功能,对提高开发效率大有裨益。 1. **XML处理**: - DOM解析:DOM(Document Object Model)是一种将XML文档映射为树形结构的方法,通过它...

    常用的java工具类

    1.[工具类] 读取、打印输出、保存xml .java 2.[工具类] Java中计算任意两个日期之间的工作天数 .java 3.[工具类] MD5 .java 4.[工具类] 时间工具TimeUtil.java 5.[工具类] 通信服务端simpleServer 6.[工具类] 使用...

    50个左右的JAVA工具类,相对比较全

    标题提到的"50个左右的JAVA工具类,相对比较全"表明这是一个集合了大量常用工具方法的资源包。描述中指出,这些工具类是开发者多年工作经验的结晶,涵盖了一些常见的需求,但可能并不完美,可能存在一些遗漏,欢迎...

    JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库

    JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与...

    27个java工具类

    本压缩包提供了27个常用的Java工具类,涵盖了编码解码、安全加密、日期时间处理、文件操作等多个领域。以下是这些工具类的详细介绍: 1. **Base64Util**:这是一个用于Base64编码和解码的工具类。Base64是一种广泛...

    Java工具类介绍

    这是本人在公司培训时做的一个PPT文档,介绍了Java常用的工具类

Global site tag (gtag.js) - Google Analytics