Class Texts

java.lang.Object
cn.xuanyuanli.core.util.Texts

public class Texts extends Object
文本字符工具
Author:
John Li Email:jujubeframework@163.com
  • Constructor Details

    • Texts

      private Texts()
      文本
  • Method Details

    • escapeExprSpecialWord

      public static String escapeExprSpecialWord(String keyword)
      转义正则特殊字符 ($()*+.[]?\^{},|)
      Parameters:
      keyword - 关键字
      Returns:
      String
    • isTrueIp

      public static boolean isTrueIp(String ipAddress)
      判断是否为合法IP
      Parameters:
      ipAddress - ip地址
      Returns:
      boolean
    • isOnlyContainCnAndNumAndEn

      public static boolean isOnlyContainCnAndNumAndEn(String name)
      是否仅包含中文、英文和数字
      Parameters:
      name - 名字
      Returns:
      boolean
    • getCnAndNumAndEn

      public static String getCnAndNumAndEn(String source)
      获得中英文和数字
      Parameters:
      source - 源
      Returns:
      String
    • checkPassWord

      public static boolean checkPassWord(String passWord)
      正则验证密码为数字和字母的组合,且为6位以上
      Parameters:
      passWord - 通过单词
      Returns:
      boolean
    • cleanSpecialChar

      public static String cleanSpecialChar(String str)
      清除特殊字符
      Parameters:
      str - str
      Returns:
      String
    • filterOffUtf8Mb4

      public static String filterOffUtf8Mb4(String text)
      过滤掉超过3个字节的UTF8字符
      Parameters:
      text - 文本
      Returns:
      String
    • emailValidate

      public static boolean emailValidate(String email)
      邮箱验证
      Parameters:
      email - 电子邮件
      Returns:
      boolean
    • mobileValidate

      public static boolean mobileValidate(String mobile)
      手机验证
      Parameters:
      mobile - 移动
      Returns:
      boolean
    • replaceBlank

      public static String replaceBlank(String str)
      替换所有空白字符
      Parameters:
      str - str
      Returns:
      String
    • replaceLineBreakToSpacing

      public static String replaceLineBreakToSpacing(String str)
      替换换行符为空格
      Parameters:
      str - str
      Returns:
      String
    • replaceUtf8Blank

      public static String replaceUtf8Blank(String text)
      替换utf-8中的空格,以免造成编码转换出现?的情况
      Parameters:
      text - 文本
      Returns:
      String
    • clearCss

      public static String clearCss(String content)
      去CSS
      Parameters:
      content - 内容
      Returns:
      String
    • regReplace

      public static String regReplace(String reg, String repstr, String instr)
      正则替换封装(忽略大小写)
           举例:regReplace("@+","","@@@123@") = 123
           需要注意的是,正则表达式中如果出现特殊字符,需要进行转义。比如:*.$等。"\\$"进行转义
       
      Parameters:
      reg - 正则表达式
      repstr - 要替换为的字符
      instr - 原始字符串
      Returns:
      完成替换的字符串
    • regReplace

      public static String regReplace(String reg, String repstr, String instr, boolean ignoreCase)
      正则替换封装
      Parameters:
      reg - 正则表达式
      repstr - 要替换为的字符
      instr - 原始字符串
      ignoreCase - 是否忽略大小写
      Returns:
      String
    • regQuery

      public static List<Texts.RegexQueryInfo> regQuery(String reg, String instr)
      注册查询
      Parameters:
      reg - 注册
      instr - instr
      Returns:
      Listinvalid input: '<'Texts.RegexQueryInfo>
      See Also:
    • regQuery

      public static List<Texts.RegexQueryInfo> regQuery(String reg, String instr, boolean ignoreCase)
      正则查询
      Parameters:
      reg - 正则表达式
      instr - 原始字符串
      ignoreCase - 是否忽略大小写
      Returns:
      返回自身与多个子匹配的信息
    • replaceChinese

      public static String replaceChinese(String str, String str2)
      替换字符串str中的中文为str2
      Parameters:
      str - str
      str2 - str2
      Returns:
      String
    • toDbc

      public static String toDbc(String input)
      全角转半角
      Parameters:
      input - 输入
      Returns:
      String
    • stringTokenizer

      public static String[] stringTokenizer(String srcString, String tokenizerString)
      适用于大型字符串分割,可以设置多个分隔符
           举例:
           String[] s = stringTokenizer("wo; are, student", " ,;");
           //s={wo,are,student}
       
      Parameters:
      srcString - 要分割的字符串
      tokenizerString - 分隔符
      Returns:
      分割后的数组
    • find

      public static boolean find(String source, String regEx)
      不忽略大小写
      Parameters:
      source - 源
      regEx - 注册前
      Returns:
      boolean
      See Also:
    • find

      public static boolean find(String source, String regEx, boolean ignoreCase)
      用正则匹配,查找字符串中有没有相应字符
       举例:find("zfa_999_ic", "zfa_\\d+_ic") = true
       
      Parameters:
      source - 原字符串
      regEx - 正则表达式
      ignoreCase - 是否忽略大小写
      Returns:
      是否找到
    • highlight

      public static String highlight(String source, String keyWord, String styleBefore, String styleAfter)
      高亮显示关键字(所有匹配的字符都替换)
      Parameters:
      source - 原文本
      keyWord - 关键字
      styleBefore - 样式前,例如<font class='red'>
      styleAfter - 样式后,例如</font>
      Returns:
      String
    • getFirstLetter

      public static String getFirstLetter(String str)
      获得字符串第一个字母

      如果为第一个字符为英文,则取出第一个字母
      如果为第一个字符为汉字,则汉字转化为拼音,取第一个拼音字母
      如果第一个字符(或之后)是符号,则从第二个字符开始,按照上面规则处理。后面字符还是符号,则递归处理
      如果全是符号,则返回null

      Parameters:
      str - str
      Returns:
      String
    • containsChinese

      public static boolean containsChinese(String s)
      判断字符串中是否包含汉字
      Parameters:
      s - 年代
      Returns:
      boolean
    • getChinese

      public static String getChinese(String content)
      获得文本中的所有中文
      Parameters:
      content - 内容
      Returns:
      String
    • getFirstLetterArr

      public static String getFirstLetterArr(String str)
      获取汉字的首字母集合(如果字符串中有非中文,将被舍弃)
      Parameters:
      str - str
      Returns:
      String
    • getHanyupinyin

      public static String getHanyupinyin(String content)
      得到汉字的拼音
      Parameters:
      content - 内容
      Returns:
      拼音都为小写不带声调
    • getHanyupinyin

      public static String getHanyupinyin(String content, int type)
      得到汉字的拼音
      Parameters:
      content - 汉字
      type - 1、拼音都为小写且带声调;2、拼音都为小写不带声调;3、拼音首字母大写不带声调;
      Returns:
      String
    • isEn

      public static boolean isEn(char c)
      是否是英文字母
      Parameters:
      c - c
      Returns:
      boolean
    • isNumeric

      public static boolean isNumeric(char c)
      是否是数字
      Parameters:
      c - c
      Returns:
      boolean
    • isChinese

      public static boolean isChinese(char c)
      字符是否是中文
      Parameters:
      c - c
      Returns:
      boolean
    • isScientificNotation

      public static boolean isScientificNotation(String str)
      是否是科学计数法
      Parameters:
      str - str
      Returns:
      boolean
    • getGroups

      public static String[] getGroups(String regex, String source)
      获得组
      Parameters:
      regex - 正则表达式
      source - 源
      Returns:
      String
      See Also:
    • getGroups

      public static String[] getGroups(String regex, String source, boolean ignoreCase)
      和JavaScript中RegExp对象的exec()方法一样
      只返回第一个匹配的结果,数组中第一个元素包含正则表达式匹配的字符串,余下的元素是与圆括号内的子表达式相匹配的子串
      Parameters:
      regex - 正则表达式
      source - 源字符串
      ignoreCase - 是否区分大小写
      Returns:
      String
    • getGroup

      public static String getGroup(String regex, String source)
      获取匹配到的文本
      Parameters:
      regex - 正则表达式
      source - 源
      Returns:
      String
    • getGroup

      public static String getGroup(String regex, String source, boolean ignoreCase)
      获取匹配到的文本
      Parameters:
      regex - 正则表达式
      source - 源
      ignoreCase - 忽略大小写
      Returns:
      String
    • group

      public static Map<String,List<String>> group(List<String> lines, Function<String,String> groupFunction)
      对lines进行分组处理
      Parameters:
      lines - 数据
      groupFunction - 获得group name的function:入参为line,返回groupName
      Returns:
      分组后的lines
    • group

      public static Map<String,List<String>> group(List<String> lines, Function<String,String> groupFunction, boolean allowRepeat)
      对lines进行分组处理
      Parameters:
      lines - 数据
      groupFunction - 获得group name的function:入参为line,返回groupName
      allowRepeat - 是否允许重复,如果为false,有重复元素的话会抛出RepeatException
      Returns:
      分组后的lines
    • groupAgain

      public static Map<String,Map<String,List<String>>> groupAgain(Map<String,List<String>> group, Function<String,String> groupFunction)
      对分组后的数据进行再分组
      Parameters:
      group - 分组后的数据
      groupFunction - 获得sub group name的function:入参为组下元素,返回sub group name
      Returns:
      再分组后的数据
    • mergeGroup

      public static List<String> mergeGroup(Map<String,Map<String,List<String>>> group, Function<String,String> moduleCommentFunction)
      合并分组
      Parameters:
      group - 集团
      moduleCommentFunction - 评论功能模块
      Returns:
      Listinvalid input: '<'String>
    • format

      public static String format(String pattern, Object... params)
      格式化字符串,仿C#。或直接用{},仿log.info()

      进阶版的MessageFormat#format()

       str = Hello {0}
       result = format(str,"World!")
       #result = Hello World!
       
      Parameters:
      pattern - 待匹配字符串
      params - 参数数组
      Returns:
      String
    • generateAtag

      public static String generateAtag(String href, String title, boolean blank)
      生成a标签
      Parameters:
      href - href
      title - 标题
      blank - 空白
      Returns:
      String
    • truncate

      public static String truncate(String source, int trancationNum)
      字符截断。如果超出某个长度,则后跟‘...’。默认英文字符按照0.5个长度计算,中文字符按照一个长度计算
      Parameters:
      source - 原始字符
      trancationNum - 截断的字符数
      Returns:
      String
    • truncate

      public static String truncate(String source, int trancationNum, boolean calcEnLen)
      字符截断。如果超出trancationNum,则后跟‘...’
      Parameters:
      source - 原始字符
      trancationNum - 截断的字符数
      calcEnLen - 是否英文字符按照0.5个长度计算
      Returns:
      String
    • toLong

      public static long toLong(String source)
      Parameters:
      source - 源
      Returns:
      long
      See Also:
      • NumberUtils.toLong(String)
    • toDouble

      public static double toDouble(String source)
      增加一倍
      Parameters:
      source - 源
      Returns:
      double
      See Also:
      • NumberUtils.toDouble(String)
    • toInt

      public static int toInt(String source)
      到int
      Parameters:
      source - 源
      Returns:
      int
      See Also:
      • NumberUtils.toInt(String)
    • parseInt

      public static int parseInt(String source)
      只取字符串中的数字
      Parameters:
      source - 源
      Returns:
      int
    • parseLong

      public static long parseLong(String source)
      只取字符串中的数字
      Parameters:
      source - 源
      Returns:
      int
    • capitalize

      public static String capitalize(String str)
      首字母大写
      Parameters:
      str - str
      Returns:
      String
    • getHideName

      public static String getHideName(String source)
      获得遮掩的名称,用**表示中间的字符(用于脱敏)
      Parameters:
      source - 源
      Returns:
      String
    • getHideName

      public static String getHideName(String source, int num, int prefixNum, int suffixNum)
      获得遮掩的名称,用**表示中间的字符(用于脱敏)
      Parameters:
      source - 源
      num - :中间*的个数
      prefixNum - :*前面显示的个数
      suffixNum - :*后面显示的个数
      Returns:
      String
    • isIp

      public static boolean isIp(String ipAddress)
      判断输入项是否为Ip地址
      Parameters:
      ipAddress - ip地址
      Returns:
      boolean
    • unescapeHtml

      public static String unescapeHtml(String str)
      反替换html中的转义字符
      Parameters:
      str - str
      Returns:
      String
    • compareVersion

      public static int compareVersion(String version1, String version2)
      版本号比较
      Parameters:
      version1 - version1
      version2 - version2
      Returns:
      0 相等,1 大于,-1 小于