您的位置 首页 java

StringUtils之截取truncate方法

方法:

 public static String truncate(final String str, final int maxWidth) {
        return truncate(str, 0, maxWidth);
    }  
 // null
System.out.println(StringUtils.truncate(null, 0));
// null
System.out.println(StringUtils.truncate(null, 2));
// ""
System.out.println(StringUtils.truncate("", 4));
// abcd
System.out.println(StringUtils.truncate("abcdefg", 4));
// abcdef
System.out.println(StringUtils.truncate("abcdefg", 6));
// abcdefg
System.out.println(StringUtils.truncate("abcdefg", 7));
// abcdefg
System.out.println(StringUtils.truncate("abcdefg", 8));
// Exception in thread "main" java.lang.IllegalArgumentException: maxWith cannot be negative
System.out.println(StringUtils.truncate("abcdefg", -1));  
 public static String truncate(final String str, final int offset, final int maxWidth) {
        if (offset < 0) {
            throw new IllegalArgumentException("offset cannot be negative");
        }
        if (maxWidth < 0) {
            throw new IllegalArgumentException("maxWith cannot be negative");
        }
        if (str == null) {
            return null;
        }
        if (offset > str.length()) {
            return EMPTY;
        }
        if (str.length() > maxWidth) {
            final int ix = offset + maxWidth > str.length() ? str.length() : offset + maxWidth;
            return str.substring(offset, ix);
        }
        return str.substring(offset);
    }  
 // null
System.out.println(StringUtils.truncate(null, 0, 0));
// null
System.out.println(StringUtils.truncate(null, 2, 4));
// ""
System.out.println(StringUtils.truncate("", 0, 10));
// ""
System.out.println(StringUtils.truncate("", 2, 10));
// abc
System.out.println(StringUtils.truncate("abcdefghij", 0, 3));
// fghij
System.out.println(StringUtils.truncate("abcdefghij", 5, 6));
// peach
System.out.println(StringUtils.truncate("raspberry peach", 10, 15));
// abcdefghij
System.out.println(StringUtils.truncate("abcdefghijklmno", 0, 10));
// abcdefghijklmno
System.out.println(StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE));
// abcdefghij
System.out.println(StringUtils.truncate("abcdefghijklmno", 1, 10));
// abcdefghijklmno
System.out.println(StringUtils.truncate("abcdefghijklmno", 2, 10));
// bcdefghijk
System.out.println(StringUtils.truncate("abcdefghijklmno", 3, 10));
// cdefghijkl
System.out.println(StringUtils.truncate("abcdefghijklmno", 4, 10));
// defghijklm
System.out.println(StringUtils.truncate("abcdefghijklmno", 5, 10));
// efghijklmn
System.out.println(StringUtils.truncate("abcdefghijklmno", 5, 5));
// fghijklmno
System.out.println(StringUtils.truncate("abcdefghijklmno", 5, 3));
// fghij
System.out.println(StringUtils.truncate("abcdefghijklmno", 10, 3));
// fgh
System.out.println(StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE));
// klm
System.out.println(StringUtils.truncate("abcdefghijklmno", 13, 1));
// klmno
System.out.println(StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE));
// n
System.out.println(StringUtils.truncate("abcdefghijklmno", 14, 1));
// no
System.out.println(StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE));
System.out.println(StringUtils.truncate("abcdefghijklmno", 15, 1));
// o
System.out.println(StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE));
// o
System.out.println(StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE));
// Exception in thread "main" java.lang.IllegalArgumentException: maxWith cannot be negative
System.out.println(StringUtils.truncate("abcdefghij", 3, -1));
// Exception in thread "main" java.lang.IllegalArgumentException: offset cannot be negative
System.out.println(StringUtils.truncate("abcdefghij", -2, 4));
// Exception in thread "main" java.lang.IllegalArgumentException: offset cannot be negative
System.out.println(StringUtils.truncate("abcdefghijklmno", -1, 10));
// Exception in thread "main" java.lang.IllegalArgumentException: offset cannot be negative
System.out.println(StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10));
// Exception in thread "main" java.lang.IllegalArgumentException: offset cannot be negative
System.out.println(StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE));  

 // null
System.out.println(StringUtils.truncate(null, 0, 0));
// null
System.out.println(StringUtils.truncate(null, 2, 4));
// ""
System.out.println(StringUtils.truncate("", 0, 10));
// ""
System.out.println(StringUtils.truncate("", 2, 10));
// abc
System.out.println(StringUtils.truncate("abcdefghij", 0, 3));
// fghij
System.out.println(StringUtils.truncate("abcdefghij", 5, 6));
// peach
System.out.println(StringUtils.truncate("raspberry peach", 10, 15));
// abcdefghij
System.out.println(StringUtils.truncate("abcdefghijklmno", 0, 10));
// abcdefghijklmno
System.out.println(StringUtils.truncate("abcdefghijklmno", 0, Integer.MAX_VALUE));
// abcdefghij
System.out.println(StringUtils.truncate("abcdefghijklmno", 1, 10));
// abcdefghijklmno
System.out.println(StringUtils.truncate("abcdefghijklmno", 2, 10));
// bcdefghijk
System.out.println(StringUtils.truncate("abcdefghijklmno", 3, 10));
// cdefghijkl
System.out.println(StringUtils.truncate("abcdefghijklmno", 4, 10));
// defghijklm
System.out.println(StringUtils.truncate("abcdefghijklmno", 5, 10));
// efghijklmn
System.out.println(StringUtils.truncate("abcdefghijklmno", 5, 5));
// fghijklmno
System.out.println(StringUtils.truncate("abcdefghijklmno", 5, 3));
// fghij
System.out.println(StringUtils.truncate("abcdefghijklmno", 10, 3));
// fgh
System.out.println(StringUtils.truncate("abcdefghijklmno", 10, Integer.MAX_VALUE));
// klm
System.out.println(StringUtils.truncate("abcdefghijklmno", 13, 1));
// klmno
System.out.println(StringUtils.truncate("abcdefghijklmno", 13, Integer.MAX_VALUE));
// n
System.out.println(StringUtils.truncate("abcdefghijklmno", 14, 1));
// no
System.out.println(StringUtils.truncate("abcdefghijklmno", 14, Integer.MAX_VALUE));
System.out.println(StringUtils.truncate("abcdefghijklmno", 15, 1));
// o
System.out.println(StringUtils.truncate("abcdefghijklmno", 15, Integer.MAX_VALUE));
// o
System.out.println(StringUtils.truncate("abcdefghijklmno", Integer.MAX_VALUE, Integer.MAX_VALUE));
// Exception in thread "main" java.lang.IllegalArgumentException: maxWith cannot be negative
System.out.println(StringUtils.truncate("abcdefghij", 3, -1));
// Exception in thread "main" java.lang.IllegalArgumentException: offset cannot be negative
System.out.println(StringUtils.truncate("abcdefghij", -2, 4));
// Exception in thread "main" java.lang.IllegalArgumentException: offset cannot be negative
System.out.println(StringUtils.truncate("abcdefghijklmno", -1, 10));
// Exception in thread "main" java.lang.IllegalArgumentException: offset cannot be negative
System.out.println(StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, 10));
// Exception in thread "main" java.lang.IllegalArgumentException: offset cannot be negative
System.out.println(StringUtils.truncate("abcdefghijklmno", Integer.MIN_VALUE, Integer.MAX_VALUE));  

测试用例:

说明:底层使用了String的substring方法,参数就是字符串的索引,截取的结果包含前,不包含后

方法:

测试用例:

说明:从字符串左侧开始截断,按照指定的位数,如果是null则返回null,如果是空,则返回””;如果指定的最大位置处小于0,则抛出异常

文章来源:智云一二三科技

文章标题:StringUtils之截取truncate方法

文章地址:https://www.zhihuclub.com/180143.shtml

关于作者: 智云科技

热门文章

网站地图