StringUtils

@Test
    public void getBankCard(){
        //期望得到的结果123456*******4321
        String bankCard="12345678987654321";
        if(StringUtils.isBlank(bankCard)){
            //return;
        }
        if(bankCard.length() <10){
            //return
        }
        String leftStr =  StringUtils.left(bankCard, 6);//左6位
        int a = bankCard.length() - 10;
        String wuyongpad = StringUtils.repeat("aa", ",", 3);
        String repeatStr = StringUtils.repeat("*", a);//获得多个*
        String card = leftStr.concat(repeatStr);//左6位+多个*
        int b = bankCard.length()-4;
        //String rightStr = bankCard.substring(b,bankCard.length());
        String rightStr = StringUtils.right(bankCard, 4);
        String lastCard = card.concat(rightStr);
        
        boolean result1 = StringUtils.isNumeric(bankCard);//true
        boolean result2 = StringUtils.isNumeric(lastCard);//false
        boolean result3 = StringUtils.isNumeric("12358a");//false
        

    }

@Test
    public void getCoding() throws Exception{
        String data = "123yyss321";
        byte[] a = data.toString().getBytes(CharEncoding.UTF8);
        logger.info("utf-8:{}",a);
        byte[] b = data.toString().getBytes(Charset.forName("GBK"));
        logger.info("gbk:{}",b);
        String returnStr = Base64.encodeBase64String(a);
        String reStr = Base64.encodeBase64String(b);

    }



@Test
    public void encodeBcd() throws DecoderException, IOException {
        String bcd ="测试用例yuxingqingk";
        char[] charArr = bcd.toCharArray();
        logger.info("返回1:{}",charArr);
        String b = new String(charArr);
        logger.info("返回2:{}",b);
        String c = new String(charArr,2,5);
        logger.info("返回3:{}",c);
    }












### StringUtils 类的功能概述 `StringUtils` 是 Apache Commons Library 中的一部分,属于 `org.apache.commons.lang3` 包下的工具类[^2]。该类主要用于简化字符串操作,提供了许多静态方法来处理常见的字符串问题。这些方法能够帮助开发者更高效地完成字符串的判断、转换和格式化等工作。 以下是 `StringUtils` 的主要功能分类及其描述: #### 1. 字符串判空 `StringUtils` 提供了一系列用于检测字符串是否为空或者仅包含空白字符的方法。例如: - `isEmpty(String str)`:如果字符串为 null 或长度为零,则返回 true。 - `isNotEmpty(String str)`:与 isEmpty 方法相反,当字符串不为空时返回 true。 - `isBlank(String str)`:如果字符串为 null 或者只包含空白字符(如空格),则返回 true。 - `isNotBlank(String str)`:与 isBlank 方法相反,当字符串既不是 null 又含有非空白字符时返回 true。 ```java System.out.println(StringUtils.isEmpty(null)); // 输出: true System.out.println(StringUtils.isBlank("")); // 输出: true System.out.println(StringUtils.isNotBlank("abc")); // 输出: true ``` #### 2. 去除多余字符 此类方法可以帮助去除字符串两端或内部多余的空白字符及其他指定字符。 - `trim(String str)`:移除字符串首尾的空白字符。 - `strip(String str, String stripChars)`:删除字符串开头和结尾处由参数定义的一组字符。 - `removeStart(String str, String remove)` 和 `removeEnd(String str, String remove)`:分别去掉字符串前缀或后缀部分匹配的内容。 ```java String result = StringUtils.strip(" Hello World! ", " H!"); // 结果:"ello World" ``` #### 3. 大小写转换 通过调用以下函数实现大小写的统一管理。 - `upperCase(String str)` - `lowerCase(String str)` ```java System.out.println(StringUtils.upperCase("hello")); // HELLO System.out.println(StringUtils.lowerCase("WORLD")); // world ``` #### 4. 子串查找与替换 支持灵活定位子序列位置以及批量替换单词等功能。 - `contains(CharSequence seq, CharSequence searchSeq)` - `replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)` ```java boolean foundA = StringUtils.contains("ABCDEF", 'A'); // true String replacedText = StringUtils.replaceEachRepeatedly( "a_b_c_", new String[]{"_"}, new String[]{"/"}); // a/b/c/ ``` #### 5. 随机生成器 利用随机数种子创建固定长度的新密码或者其他形式的数据片段。 - `RandomStringUtils.random(int count)` - `RandomStringUtils.randomAlphabetic(int count)` ```java String randomStr = RandomStringUtils.random(8); System.out.println(randomStr.length()); // 8 ``` --- ### 使用场景举例 假设我们需要开发一款应用程序,在其中验证用户输入邮箱地址的有效性并清理数据。我们可以借助于 `StringUtils` 来快速构建逻辑框架如下所示: ```java public boolean isValidEmail(String email){ if (StringUtils.isBlank(email)) { return false; } String trimmedEmail = StringUtils.trim(email); int atIndex = trimmedEmail.indexOf("@"); ... } ``` 上述代码展示了如何运用 `StringUtils.isBlank()` 判断字段是否存在有效值;再经过去掉冗余空间之后进一步分析结构特性等等。 --- ### 总结 综上所述,Apache Commons Lang 库内的 `StringUtils` 已成为众多 Java 开发人员日常工作中不可或缺的好帮手之一。凭借其丰富的预设算法集合,极大地减少了重复编码量的同时提高了程序可读性和稳定性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值