龙空技术网

100个Java工具类之2:字符串之多种个性化格式处理

金属时代ok 38

前言:

今天我们对“js 判断字符串是否为数字”可能比较讲究,我们都想要知道一些“js 判断字符串是否为数字”的相关内容。那么小编在网络上网罗了一些对于“js 判断字符串是否为数字””的相关文章,希望看官们能喜欢,姐妹们一起来了解一下吧!

一、个性化字符串工具类(本文重点)

package com.abc.util;import java.util.List;import java.util.Random;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 字符串工具类 * * @author goln */public class StringUtils {    public static final String NUMBER_REGEX = "([0-9]\\d*\\.?\\d*)||(0\\.\\d*[1-9])";    public static boolean isNull(String str) {        if (null==str) {            return true;        } else {            return str.trim().length() == 0 || "".equals(str);        }    }    //判断字符串是否是数字    public static boolean isNumber(String s) {        return s.matches(NUMBER_REGEX);    }    //获取字符串中的数字    public static String getNumbers(String content) {        Pattern pattern = Pattern.compile("\\d+");        Matcher matcher = pattern.matcher(content);        while (matcher.find()) {            return matcher.group(0);        }        return "";    }    /**     * 去除字符串开头的指定字符     *     * @param stream 原始字符串     * @param trim   要删除的字符串     * @return     */    public static String StringStartTrim(String stream, String trim) {        // null或者空字符串的时候不处理        if (stream == null || stream.length() == 0 || trim == null || trim.length() == 0) {            return stream;        }        // 要删除的字符串结束位置        int end;        // 正规表达式        String regPattern = "[" + trim + "]*+";        Pattern pattern = Pattern.compile(regPattern, Pattern.CASE_INSENSITIVE);        // 去掉原始字符串开头位置的指定字符        Matcher matcher = pattern.matcher(stream);        if (matcher.lookingAt()) {            end = matcher.end();            stream = stream.substring(end);        }        // 返回处理后的字符串        return stream;    }    /**     * List<String>转以逗号分隔的String     *     * @param data     * @return     */    public static String ListToString(List<String> data) {        StringBuilder sb = new StringBuilder();        for (int i = 0; i < data.size(); i++) {            if (sb.length() > 0) {//该步即不会第一位有逗号,也防止最后一位拼接逗号!                sb.append(",");            }            sb.append(data.get(i));        }        return sb.toString();    }    public static String addRightSpace(String str, int length) {        int str_length = str.length();        for(int i = 0; i < length - str_length; ++i) {            str = str + ' ';        }        return str;    }    public static byte[] hexStringToBytes(String src) {        byte[] ret = new byte[src.length() / 2];        byte[] tmp = src.getBytes();        for(int i = 0; i < src.length() / 2; ++i) {            ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]);        }        return ret;    }    /**     * 随机生成六位数验证码     * @return     */    public static int getRandomNum(){        Random r = new Random();        return r.nextInt(900000)+100000;    }    /**     * 随机生成四位数验证码     * @return     */    public static int getRandomNum4(){        Random r = new Random();        return r.nextInt(9000)+1000;    }    /**     * 去空格     */    public static String trim(String str) {        return (str == null ? "" : str.trim());    }    /**     * 截取字符串     *     * @param str   字符串     * @param start 开始     * @return 结果     */    public static String substring(final String str, int start) {        if (str == null) {            return "";        }        if (start < 0) {            start = str.length() + start;        }        if (start < 0) {            start = 0;        }        if (start > str.length()) {            return "";        }        return str.substring(start);    }    /**     * 截取字符串     *     * @param str   字符串     * @param start 开始     * @param end   结束     * @return 结果     */    public static String substring(final String str, int start, int end) {        if (str == null) {            return "";        }        if (end < 0) {            end = str.length() + end;        }        if (start < 0) {            start = str.length() + start;        }        if (end > str.length()) {            end = str.length();        }        if (start > end) {            return "";        }        if (start < 0) {            start = 0;        }        if (end < 0) {            end = 0;        }        return str.substring(start, end);    }    /**     * 下划线转驼峰命名     */    public static String toUnderScoreCase(String str) {        if (str == null) {            return null;        }        StringBuilder sb = new StringBuilder();        // 前置字符是否大写        boolean preCharIsUpperCase = true;        // 当前字符是否大写        boolean curreCharIsUpperCase = true;        // 下一字符是否大写        boolean nexteCharIsUpperCase = true;        for (int i = 0; i < str.length(); i++) {            char c = str.charAt(i);            if (i > 0) {                preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));            } else {                preCharIsUpperCase = false;            }            curreCharIsUpperCase = Character.isUpperCase(c);            if (i < (str.length() - 1)) {                nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));            }            if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) {                sb.append("_");            } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) {                sb.append("_");            }            sb.append(Character.toLowerCase(c));        }        return sb.toString();    }    /**     * 是否包含字符串     *     * @param str  验证字符串     * @param strs 字符串组     * @return 包含返回true     */    public static boolean inStringIgnoreCase(String str, String... strs) {        if (str != null && strs != null) {            for (String s : strs) {                if (str.equalsIgnoreCase(trim(s))) {                    return true;                }            }        }        return false;    }    /**     * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld     *     * @param name 转换前的下划线大写方式命名的字符串     * @return 转换后的驼峰式命名的字符串     */    public static String convertToCamelCase(String name) {        StringBuilder result = new StringBuilder();        // 快速检查        if (name == null || name.isEmpty()) {            // 没必要转换            return "";        } else if (!name.contains("_")) {            // 不含下划线,仅将首字母大写            return name.substring(0, 1).toUpperCase() + name.substring(1);        }        // 用下划线将原始字符串分割        String[] camels = name.split("_");        for (String camel : camels) {            // 跳过原始字符串中开头、结尾的下换线或双重下划线            if (camel.isEmpty()) {                continue;            }            // 首字母大写            result.append(camel.substring(0, 1).toUpperCase());            result.append(camel.substring(1).toLowerCase());        }        return result.toString();    }    /**     * 手机号简单验证     *     * @param phoneNumber     * @return 验证通过返回true     */    public static boolean isPhone(String phoneNumber) {        return Pattern.compile("^[1][0-9]{10}$").matcher(phoneNumber).matches();    }}

二、

org.springframework.util.StringUtils包有多个常用字符串处理方法

//1.1 字符串判断方法// 判断字符串是否为 null,或 ""。注意,包含空白符的字符串为非空boolean isEmpty(Object str)// 判断字符串是否是以指定内容结束。忽略大小写boolean endsWithIgnoreCase(String str, String suffix)// 判断字符串是否已指定内容开头。忽略大小写boolean startsWithIgnoreCase(String str, String prefix) // 是否包含空白符boolean containsWhitespace(String str)// 判断字符串非空且长度不为 0,即,Not Emptyboolean hasLength(CharSequence str)// 判断字符串是否包含实际内容,即非仅包含空白符,也就是 Not Blankboolean hasText(CharSequence str)// 判断字符串指定索引处是否包含一个子串。boolean substringMatch(CharSequence str, int index, CharSequence substring)//1.2 字符串处理方法// 计算一个字符串中指定子串的出现次数int countOccurrencesOf(String str, String sub)// 查找并替换指定子串String replace(String inString, String oldPattern, String newPattern)// 去除尾部的特定字符String trimTrailingCharacter(String str, char trailingCharacter) // 去除头部的特定字符String trimLeadingCharacter(String str, char leadingCharacter)// 去除头部的空白符String trimLeadingWhitespace(String str)// 去除头部的空白符String trimTrailingWhitespace(String str)// 去除头部和尾部的空白符String trimWhitespace(String str)// 删除开头、结尾和中间的空白符String trimAllWhitespace(String str)// 删除指定子串String delete(String inString, String pattern)// 删除指定字符(可以是多个)String deleteAny(String inString, String charsToDelete)// 对数组的每一项执行 trim() 方法String[] trimArrayElements(String[] array)// 将 URL 字符串进行解码String uriDecode(String source, Charset charset)//1.3 路径相关方法// 解析路径字符串,优化其中的 “..” String cleanPath(String path)// 解析路径字符串,解析出文件名部分String getFilename(String path)// 解析路径字符串,解析出文件后缀名String getFilenameExtension(String path)// 比较两个两个字符串,判断是否是同一个路径。会自动处理路径中的 “..” boolean pathEquals(String path1, String path2)// 删除文件路径名中的后缀部分String stripFilenameExtension(String path) // 以 “. 作为分隔符,获取其最后一部分String unqualify(String qualifiedName)// 以指定字符作为分隔符,获取其最后一部分String unqualify(String qualifiedName, char separator)

三、String与Map、Json、Date等互转工具类

//3.1 Map转StringMap<String, String> map = new HashMap<String, String>();map.put("key1", "value1");map.put("key2", "value2");map.put("key3", "value3");System.out.println(map.toString());//3.2 String转Mappublic static Map<String,String> mapStringToMap(String str){    str = str.substring(1, str.length()-1);    String[] strs = str.split(",");    Map<String,String> map = new HashMap<String, String>();    for (String string : strs) {        String key = string.split("=")[0];        String value = string.split("=")[1];        // 去掉头部空格        String key1 = key.trim();        String value1 = value.trim();        map.put(key1, value1);    }    return map;}	//3.3Map转换成JsonJSONObject JSONObj = JSONObject.parseObject(JSON.toJSONString(map));//3.4 Json字符串转换成MapMap<String,Object> strMap =  JSONObject.parseObject(jsonStr);//3.5 Json对象转Map /*JSON对象转map常用*/Map<String,Object> jsonToMap =  JSONObject.parseObject(jsonObject.toJSONString());//3.6 String转jsonJSONObject  jasonObject = JSONObject.fromObject(str);//3.7 Json转StringString str = JSON.toJSONString(obj/array);//3.8 String转Datepublic static Date transferString2Date(String s) {    Date date = new Date();    try {        date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(s);    } catch (ParseException e) {        //LOGGER.error("时间转换错误, string = {}", s, e);    }    return date;}//3.9 Date转StringDate date = new Date();SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String time = simpleDateFormat.format(date);Date d = simpleDateFormat.parse(time);

标签: #js 判断字符串是否为数字