Strings工具类

import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;
import java.util.UUID;
// <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
//        <dependency>
//            <groupId>org.apache.commons</groupId>
//           <artifactId>commons-lang3</artifactId>
//            <version>3.9</version>
//        </dependency>


public class Strings extends StringUtils {

    private static final Logger log = LoggerFactory.getLogger(Strings.class);

    public final static String EMPTY = "";

    public static String UUId16(){
        String uuId = Strings.UUId();
        uuId = uuId.replaceAll("-", "");
        return uuId.substring(0,16);
    }

    public static String currentTimeMillis(){
        return String.valueOf(System.currentTimeMillis());
    }

    public static String UUId(){
        UUID uuid = UUID.randomUUID();
        return uuid.toString().replaceAll("-","");
    }
    /**
     * min-max之间的随机数
     * @param min
     * @param max
     * @return
     */
    public static int Random(Integer min, Integer max){
        return (int)((max-min)*Math.random())+min;
    }

    /**
     * 字符串转int类型
     * @param str
     * @return
     */
    public static Integer StrToInteger(String str){
        if(Strings.isEmpty(str)){
            return 0;
        }
        try{
            return Integer.valueOf(str).intValue();
        }catch (NumberFormatException e){
            log.error(e.toString());
        }

        return 0;
    }

    public static boolean isEmpty(List<T> value) {
        if (value == null || value.isEmpty() || value.size() == 0){
            return true;
        }
        return false;
    }

    public static boolean isEmpty(Object[] value) {
        if (value == null || value.length == 0){
            return true;
        }
        return false;
    }

    public static boolean isNotEmpty(Object object) {
        return !isEmpty(object);
    }

    public static boolean isEmpty(Object object) {
        if (object == null || EMPTY.equals(object)){
            return true;
        }
        return false;
    }

    public static boolean isNotEmpty(Object[] value) {
        return !isEmpty(value);
    }

    public static boolean isNotEmpty(List<T> value) {
        return !isEmpty(value);
    }

    public static boolean isNotEmpty(String value) {
        return !isEmpty(value);
    }

    public static boolean isNotEmpty(CharSequence value) {
        return !isEmpty(value);
    }
    /**
     * @Title: join
     * @Description: 用指定字符串数组相连接,并返回
     * @param strs 字符串数组
     * @param splitStr 连接数组的字符串
     * @return
     * @return: String
     */
    public static String join(String[] strs, String splitStr){
        if(strs!=null){
            if(strs.length==1){
                return strs[0];
            }
            StringBuffer sb = new StringBuffer();
            for (String str : strs) {
                sb.append(str).append(splitStr);
            }
            if(sb.length()>0){
                sb.delete(sb.length()-splitStr.length(), sb.length());
            }
            return sb.toString();
        }
        return null;
    }
    /**
     * @Title: subStrStart
     * @Description: 从头开始截取
     * @param str 字符串
     * @param end 结束位置
     * @return
     * @return: String
     */
    public static String subStrStart(String str, int end){
        return subStr(str, 0, end);
    }

    /**
     *
     * @Title: subStrEnd
     * @Description: 从尾开始截取
     * @param str 字符串
     * @param start 开始位置
     * @return
     * @return: String
     */
    public static String subStrEnd(String str, int start){
        return subStr(str, str.length()-start, str.length());
    }

    /**
     * @Title: subStr
     * @Description: 截取字符串 (支持正向、反向截取)
     * @param str 待截取的字符串
     * @param length 长度 ,>=0时,从头开始向后截取length长度的字符串;<0时,从尾开始向前截取length长度的字符串
     * @return
     * @throws RuntimeException
     * @return: String
     */
    public static String subStr(String str, int length) throws RuntimeException{
        if(str==null){
            throw new NullPointerException("字符串为null");
        }
        int len = str.length();
        if(len<Math.abs(length)){
            throw new StringIndexOutOfBoundsException("最大长度为"+len+",索引超出范围为:"+(len-Math.abs(length)));
        }
        if(length>=0){
            return  subStr(str, 0,length);
        }else{
            return subStr(str, len-Math.abs(length), len);
        }
    }


    /**
     * 截取字符串 (支持正向、反向选择)
     * @param str  待截取的字符串
     * @param start 起始索引 ,>=0时,从start开始截取;<0时,从length-|start|开始截取
     * @param end 结束索引 ,>=0时,从end结束截取;<0时,从length-|end|结束截取
     * @return 返回截取的字符串
     * @throws RuntimeException
     */
    public static String subStr(String str, int start, int end) throws RuntimeException{
        if(str==null){
            throw new NullPointerException("");
        }
        int len = str.length();
        int s = 0;//记录起始索引
        int e = 0;//记录结尾索引
        if(len<Math.abs(start)){
            throw new StringIndexOutOfBoundsException("最大长度为"+len+",索引超出范围为:"+(len-Math.abs(start)));
        }else if(start<0){
            s = len - Math.abs(start);
        }else if(start<0){
            s=0;
        }else{//>=0
            s = start;
        }
        if(len<Math.abs(end)){
            throw new StringIndexOutOfBoundsException("最大长度为"+len+",索引超出范围为:"+(len-Math.abs(end)));
        }else if (end <0){
            e = len - Math.abs(end);
        }else if (end==0){
            e = len;
        }else{//>=0
            e = end;
        }
        if(e<s){
            throw new StringIndexOutOfBoundsException("截至索引小于起始索引:"+(e-s));
        }

        return str.substring(s, e);
    }
}

 

strings.com 是强大的纯DOS环境 下的文本处理工具 STRINGS常用方法: 1、把文本文件 LIST.TXT 包含的行数赋值给变量 LN STRINGS LN=LINESIZE LIST.TXT 2、把文本文件 LIST.TXT 的大小传递给变量FS STRINGS FS=FILESIZE LIST.TXT 3、读取文本文件 LIST.TXT 的第5行内容并赋值给变31333137量 LN STRINGS LN=READ LIST.TXT,5 4、把变量 N 在原有基础上+1 和 -1 STRINGS N=ADD %N%,1 STRINGS N=SUB %N%,1 5、把字符串 ABCDEFG 中第四个字符以及后面共3个字符传递给变量 LX (DEF) STRINGS LX=MID ABCDEFG,4,3 6、查找字符串 ABCDEFG 中D所在的位置并赋值给变量DX,如果没找到DX=0 STRINGS DX=FIND ABCDEFG,D 7、找出字符串 ABCD EFG HIJ KLMN 中第二个单词并赋值给变量L2 STRINGS L2=PARSE ABCD EFG HIJ KLMN ,2 应用举例:逐一显示文件 LIST.TXT 各行内容 @ECHO OFF REM 读取LIST.TXT大小如果是0就转入 ERROR段 STRINGS FS=FILESIZE LIST.TXT IF %FS%*==0* GOTO ERROR REM 读取 LIST.TXT 行数 并用N作计数器以循环方式显示 LIST.TXT各行内容。 STRINGS L=LINESIZE LIST.TXT STRINGS L=ADD %L%,1 SET N=0 :LOOP STRINGS N=ADD %N%,1 STRINGS LX=READ LIST.TXT,%N% ECHO %LX% IF %N%*==%L%* GOTO END GOTO LOOP :ERROR ECHO LIST.TXT IS NULL :END SET FS= SET L= SET N= SET LX= --------------------------------------------- NSET 的常用方法: 1、把某一命令的执行结果传递给变量。 A.把 DIR 命令执行结果第7行中的第2个单词传递给变量 DIRX DIR /A /S |NSET /L7 DIRX=$2 B.把当前路径传递给变量 CDX CD |NSET CDX=$0 2、获取 LIST.TXT 文件第5行第2个单词的内容并赋值给变量 L52 NSET /L5 L52=$2 <LIST.TXT 举例:显示出 LIST.TXT 文件中第二个单词是 SYSTEM 的行的内容。 @ECHO OFF REM 读取LIST.TXT大小如果是0就转入 ERROR段 STRINGS FS=FILESIZE LIST.TXT IF %FS%*==0* GOTO ERROR REM 读取 LIST.TXT 行数 并用N作计数器以循环方式显示 LIST.TXT中第二个单词是 REM SYSTEM 的行的内容,每找到一个符合条件的行,就把变量M在原有基础上+1。 STRINGS L=LINESIZE LIST.TXT STRINGS L=ADD %L%,1 SET N=0 SET M=0 :LOOP STRINGS N=ADD %N%,1 STRINGS LX=READ LIST.TXT,%N% REM STRINGS LX2=PARSE %LX%,2 NSET /L%N% LX2=$2 diskn.txt REM 如果存在DISKN2.TXT 就删除之 if exist diskn2.txt del diskn2.txt >nul REM 获取DISKN.TXT文件行数并用N做计数器逐行判断,并把需要的信息传递给DISKN2.TXT REM 如果该行前两个字符是 NO 说明没有硬盘,就退出脚本 RE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值