package com.mytripod.util;

import sun.rmi.runtime.Log;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.util.List;
import java.util.StringTokenizer;

/**
 * @author Mytripod
 * @create 2018-09-30 21:30
 */
public class StringUtil {
    private static Log log = LogFactory.getLog(StringUtil.class);

    public static String ENCODING = "UTF-8";

    public static String encodePassword(String password, String algorithm) {
        byte[] unencodedPassword = password.getBytes();
        MessageDigest md = null;
        try {
            md = MessageDigest.getInstance(algorithm);
        } catch (Exception e) {
            log.error("Exception: " + e);
            return password;
        }
        md.reset();
        md.update(unencodedPassword);
        byte[] encodedPassword = md.digest();
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < encodedPassword.length; i++) {
            if (((int) encodedPassword[i] & 0xff) < 0x10) {
                buf.append("0");
            }
            buf.append(Long.toString((int) encodedPassword[i] & 0xff, 16));
        }
        return buf.toString();
    }

    public static String encodeString(String str)  {
        if (str == null)
            return null;
        try {
            byte[] b = Base64.encodeBase64(str.getBytes(ENCODING));
            return new String(b, ENCODING);
        } catch (UnsupportedEncodingException e) {
            return null;
        }
    }

    public static String encodeStringURLSafe(String str)  {
        if (str == null)
            return null;
        try {
            byte[] b = Base64.encodeBase64URLSafe(str.getBytes(ENCODING));
            return new String(b, ENCODING);
        } catch (UnsupportedEncodingException e) {
            return null;
        }
    }

    public static String decodeString(String str) {
        if (str == null)
            return null;
        try {
            byte[] b = Base64.decodeBase64(str.getBytes(ENCODING));
            return new String(b, ENCODING);
        } catch (Exception e) {
            return null;
        }
    }

    public static String swapFirstLetterCase(String string) {
        StringBuffer sbuf = new StringBuffer(string);
        sbuf.deleteCharAt(0);
        if (Character.isLowerCase(string.substring(0, 1).toCharArray()[0])) {
            sbuf.insert(0, string.substring(0, 1).toUpperCase());
        } else {
            sbuf.insert(0, string.substring(0, 1).toLowerCase());
        }
        return sbuf.toString();
    }

    public static String trim(String origString, String trimString) {
        int startPosit = origString.indexOf(trimString);
        if (startPosit != -1) {
            int endPosit = trimString.length() + startPosit;
            return origString.substring(0, startPosit) + origString.substring(endPosit);
        }
        return origString;
    }

    public static boolean contain(String origString, String containString) {
        if (origString.indexOf(containString) != -1) {
            return true;
        }
        return false;
    }

    /**
     *
     * @param origString
     * @param stringToken
     */
    public static String getLastString(String origString, String stringToken) {
        StringTokenizer st = new StringTokenizer(origString, stringToken);
        String lastString = "";
        while (st.hasMoreTokens()) {
            lastString = st.nextToken();
        }
        return lastString;
    }

    /**
     * @param string
     * @param token
     */
    public static String[] getStringArray(String string, String token) {
        if (string.indexOf(token) != -1) {
            StringTokenizer st = new StringTokenizer(string, token);
            String[] stringArray = new String[st.countTokens()];
            for (int i = 0 ; st.hasMoreTokens(); i++) {
                stringArray[i] = st.nextToken();
            }
            return stringArray;
        }
        return new String [] {string};
    }
    public static String[] getStringArray(String string) {
        StringTokenizer st = new StringTokenizer(string);
        String[] stringArray = new String[st.countTokens()];
        for (int i = 0 ; st.hasMoreTokens(); i++) {
            stringArray[i] = st.nextToken();
        }
        return stringArray;
    }

    public static String replace(String string, String replaced, String replace) {
        String newString = "";
        if (string.indexOf(replaced) != -1 ) {
            String s1 = string.substring(0, string.indexOf(replaced));
            String s2 = string.substring(string.indexOf(replaced) + 1);;
            newString = s1 + replace + s2;
        }
        return newString;
    }

    public static boolean hasLength(String str) {
        return (str != null && str.length() > 0);
    }

    public static boolean hasText(String str) {
        int strLen;
        if (str == null || (strLen = str.length()) == 0) {
            return false;
        }
        for (int i = 0; i < strLen; i++) {
            if (!Character.isWhitespace(str.charAt(i))) {
                return true;
            }
        }
        return false;
    }

    public static String toString(Object obj) {
        return ToStringBuilder.reflectionToString(obj,ToStringStyle.DEFAULT_STYLE);
    }

    public static void main(String[] args) {
        String s = "work$id";
        s = StringUtil.replace(s, "$", ".");
        System.out.print(s);
    }
    public static boolean notEmpty(String str) {
        if ( str == null )  return false;
        else if ( str.equals("") ) return false;
        else return true;
    }

    public static boolean isNotEmpty(String s) {
        return s != null && !s.trim().equals("");
    }

    public static boolean isEmpty(String s) {
        return s == null || s.trim().equals("");
    }

    public static boolean isNotNull(String s) {
        return s != null;
    }

    public static boolean isEqual(String s, Object o) {
        return isNotEmpty(s) && s.equals(o);
    }

    /**
     * 将字符串数组转化为in条件用的字符串
     * @param str
     * @return
     */
    public static String getInClause(String[] str) {
        StringBuffer result = new StringBuffer();

        for(int i=0; i<str.length; i++) {
            if(i>0) {
                result.append(",");
            }
            result.append("'" + str[i] +"'");
        }
        return result.toString();
    }

    public static String getInClause(List<String> list) {
        String[] arr = (String[])list.toArray(new String[list.size()]);
        return getInClause(arr);
    }

    public static boolean isNumeric(String str){
        for(int i=str.length();--i>=0;){
            int chr=str.charAt(i);
            if(chr<48 || chr>57)
                return false;
        }
        return true;
    }

    public static String jsonString(String s){
        String str = "";
        char[] temp = s.toCharArray();
        int n = temp.length;
        for(int i =0;i<n;i++){
            if(temp[i]=='"'){
                str =  str + "”";
            }else{
                str =  str + temp[i];
            }
        }
        return str;
    }
}

String 工具类的更多相关文章

  1. String工具类

    String工具类 问题描述 MAVEN依赖 代码成果 问题描述 很多时候我们需要对字符串进行很多固定的操作,而这些操作在JDK/JRE中又没有预置,于是我们想到了apache-commons组件,但 ...

  2. 实用的 集合工具类 和 String工具类

    集合工具类:CollectionUtil method: 1.isNotEmpty() 不为空 2.isEmpty() 为空 举例:map集合         Map<String,String ...

  3. [分享]一个String工具类,也许你的项目中会用得到

    每次做项目都会遇到字符串的处理,每次都会去写一个StringUtil,完成一些功能. 但其实每次要的功能都差不多: 1.判断类(包括NULL和空串.是否是空白字符串等) 2.默认值 3.去空白(tri ...

  4. JAVA String 工具类

    java StringUtil 字符串工具类 import java.util.ArrayList; import java.util.LinkedHashSet; import java.util. ...

  5. String工具类2

    1:比较字符串 public static void main(String[] args) { // String去创建对象有多种方式 // 方式1 直接字面值赋值 String s = " ...

  6. 优雅的将Map转为String工具类

    import com.alibaba.fastjson.JSONObject;import org.apache.commons.lang3.StringUtils; import java.lang ...

  7. String工具类之“四个判空方式”StringUtils.isNotBlank和StringUtils.isEmpty和StringUtils.isBlank和StringUtils.isNotEmpty

    一.判断str字符串都不为空==>StringUtils.isNotBlank(String str); 1 /** 2 * <p>检查一个字符串是否非空("") ...

  8. String工具类之“前缀比较”StringUtils.startsWith和StringUtils.startsWithIgnoreCase

    (1)字符串以prefix为前缀(区分大小写) StringUtils.startsWith(被比较的字符串,比较字符串) 总结: 根据下面代码发现,上面的例子有部分时错误的,有可能是因为思维原因,他 ...

  9. java工具类

    1.HttpUtilsHttp网络工具类,主要包括httpGet.httpPost以及http参数相关方法,以httpGet为例:static HttpResponse httpGet(HttpReq ...

随机推荐

  1. idea 设置项目编码

    目前我了解的设置idea编码有两种形式(但深层次不太了解) 方式一: 这个方式需要你点击要设置编码单个文件,选择编码.一次只能修改一个文件编码 方式二: 一般工作时使用这个方式,文件编码,选择项目文件 ...

  2. PHP中的连贯操作

    连贯操作有什么好处?就是多行操作可以在一行之内完成,要进行连贯操作的方法必须返回$this,也就是当前类的对象实例,然后就可以进行连贯操作了,具体的实现代码如下所示. <?php /** * p ...

  3. bzoj 1306: [CQOI2009]match循环赛【dfs+剪枝】

    大力剪枝,最后洛谷上还开了o2才过-- 大概这样剪枝: 1.搜索中,一个队当前得分超过要求或者一个队剩下的比赛场数全赢也达不到要求则return: 2.注意到如果平局,最总分的贡献是2,否则是3,所以 ...

  4. 使用了eclipse10年之后,我终于投向了IDEA

    使用了eclipse10年之后,我终于投向了IDEA 最近,改用了idea,同事都说我投敌了.当然,这些同事都是和我一样的"老"程序员.不说毕业生,公司里的90后基本电脑都不会安装 ...

  5. 深入理解Android

    http://blog.csdn.net/innost/article/details/47254381

  6. SSH的安装及使用

    ssh(secure shell--加密远程登录管理服务器) ,是一种安全的传输协议,主要用于给远程登录会话的数据进行加密,保证数据传输的安全.Ubuntu客户端可以通过SSH访问远程服务器.SSH的 ...

  7. java awt 乱码问题

    问题:项目环境是utf-8,awt的元件比如label一直乱码 解决: (eclipse) 1.在你的具有main函数的类也即你应用运行的主类上点击右键,选择Run As中的Run Configura ...

  8. Java编码格式

    简介 编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换较多.本文将向你详细介绍 Java 中编码问题出现的根本原因,你将了解到:Jav ...

  9. mysql配置mha高可用防火墙未关闭报错

    ########################################################################## l  问题背景:检查主从复制之后做高可用报错 [r ...

  10. windows8.1专业版 关闭ie11总是已停止工作

    该问题通常原因: 1 系统重病毒: 2 系统和安装的软件不兼容导致. 解决方案: 1 杀毒更新至最新进行杀毒,仍未解决,重新安装系统: 2 目前身边人员多数属于该情况: 1 如安装了输入法.迅雷或其它 ...