本文整理了Java中cn.hutool.core.util.StrUtil.sub()
方法的一些代码示例,展示了StrUtil.sub()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。StrUtil.sub()
方法的具体详情如下:
包路径:cn.hutool.core.util.StrUtil
类名称:StrUtil
方法名:sub
[英]改进JDK subString
index从0开始计算,最后一个字符为-1
如果from和to位置一样,返回 ""
如果from或to为负数,则按照length从后向前数位置,如果绝对值大于字符串长度,则from归到0,to归到length
如果经过修正的index中from大于to,则互换from和to example:
abcdefgh 2 3 =》 c
abcdefgh 2 -3 =》 cde
[中]改进JDK子串
指数从0开始计算,最后一个字符为-1.
如果从…起和到位置一样,返回 ""
如果从…起或到为负数,则按照长从后向前数位置,如果绝对值大于字符串长度,则从…起归到0到归到长
如果经过修正的指数中从…起大于到则互换从…起和例如:
abcdefgh 2 3=》c
abcdefgh 2-3=”cde
代码示例来源:origin: looly/hutool
/**
* 切割指定位置之前部分的字符串
*
* @param string 字符串
* @param toIndex 切割到的位置(不包括)
* @return 切割后的剩余的前半部分字符串
*/
public static String subPre(CharSequence string, int toIndex) {
return sub(string, 0, toIndex);
}
代码示例来源:origin: looly/hutool
/**
* 截取字符串,从指定位置开始,截取指定长度的字符串<br>
* author weibaohui
*
* @param input 原始字符串
* @param fromIndex 开始的index,包括
* @param length 要截取的长度
* @return 截取后的字符串
*/
public static String subWithLength(String input, int fromIndex, int length) {
return sub(input, fromIndex, fromIndex + length);
}
代码示例来源:origin: looly/hutool
/**
* 截取字符串,从指定位置开始,截取指定长度的字符串<br>
* author weibaohui
*
* @param input 原始字符串
* @param fromIndex 开始的index,包括
* @param length 要截取的长度
* @return 截取后的字符串
*/
public static String subWithLength(String input, int fromIndex, int length) {
return sub(input, fromIndex, fromIndex + length);
}
代码示例来源:origin: looly/hutool
/**
* 切割指定位置之前部分的字符串
*
* @param string 字符串
* @param toIndex 切割到的位置(不包括)
* @return 切割后的剩余的前半部分字符串
*/
public static String subPre(CharSequence string, int toIndex) {
return sub(string, 0, toIndex);
}
代码示例来源:origin: looly/hutool
/**
* 切割指定位置之后部分的字符串
*
* @param string 字符串
* @param fromIndex 切割开始的位置(包括)
* @return 切割后后剩余的后半部分字符串
*/
public static String subSuf(CharSequence string, int fromIndex) {
if (isEmpty(string)) {
return null;
}
return sub(string, fromIndex, string.length());
}
代码示例来源:origin: looly/hutool
/**
* 切割指定位置之后部分的字符串
*
* @param string 字符串
* @param fromIndex 切割开始的位置(包括)
* @return 切割后后剩余的后半部分字符串
*/
public static String subSuf(CharSequence string, int fromIndex) {
if (isEmpty(string)) {
return null;
}
return sub(string, fromIndex, string.length());
}
代码示例来源:origin: looly/hutool
/**
* 去掉字符包装,如果未被包装则返回原字符串
*
* @param str 字符串
* @param prefix 前置字符串
* @param suffix 后置字符串
* @return 去掉包装字符的字符串
* @since 4.0.1
*/
public static String unWrap(CharSequence str, String prefix, String suffix) {
if (isWrap(str, prefix, suffix)) {
return sub(str, prefix.length(), str.length() - suffix.length());
}
return str.toString();
}
代码示例来源:origin: looly/hutool
/**
* 去掉字符包装,如果未被包装则返回原字符串
*
* @param str 字符串
* @param prefix 前置字符串
* @param suffix 后置字符串
* @return 去掉包装字符的字符串
* @since 4.0.1
*/
public static String unWrap(CharSequence str, String prefix, String suffix) {
if (isWrap(str, prefix, suffix)) {
return sub(str, prefix.length(), str.length() - suffix.length());
}
return str.toString();
}
代码示例来源:origin: looly/hutool
/**
* 限制字符串长度,如果超过指定长度,截取指定长度并在末尾加"..."
*
* @param string 字符串
* @param length 最大长度
* @return 切割后的剩余的前半部分字符串+"..."
* @since 4.0.10
*/
public static String maxLength(CharSequence string, int length) {
Assert.isTrue(length > 0);
if (null == string) {
return null;
}
if (string.length() <= length) {
return string.toString();
}
return sub(string, 0, length) + "...";
}
代码示例来源:origin: looly/hutool
/**
* 限制字符串长度,如果超过指定长度,截取指定长度并在末尾加"..."
*
* @param string 字符串
* @param length 最大长度
* @return 切割后的剩余的前半部分字符串+"..."
* @since 4.0.10
*/
public static String maxLength(CharSequence string, int length) {
Assert.isTrue(length > 0);
if (null == string) {
return null;
}
if (string.length() <= length) {
return string.toString();
}
return sub(string, 0, length) + "...";
}
代码示例来源:origin: looly/hutool
/**
* 切割指定长度的后部分的字符串
*
* <pre>
* StrUtil.subSufByLength("abcde", 3) = "cde"
* StrUtil.subSufByLength("abcde", 0) = ""
* StrUtil.subSufByLength("abcde", -5) = ""
* StrUtil.subSufByLength("abcde", -1) = ""
* StrUtil.subSufByLength("abcde", 5) = "abcde"
* StrUtil.subSufByLength("abcde", 10) = "abcde"
* StrUtil.subSufByLength(null, 3) = null
* </pre>
*
* @param string 字符串
* @param length 切割长度
* @return 切割后后剩余的后半部分字符串
* @since 4.0.1
*/
public static String subSufByLength(CharSequence string, int length) {
if (isEmpty(string)) {
return null;
}
if (length <= 0) {
return EMPTY;
}
return sub(string, -length, string.length());
}
代码示例来源:origin: looly/hutool
/**
* 切割指定长度的后部分的字符串
*
* <pre>
* StrUtil.subSufByLength("abcde", 3) = "cde"
* StrUtil.subSufByLength("abcde", 0) = ""
* StrUtil.subSufByLength("abcde", -5) = ""
* StrUtil.subSufByLength("abcde", -1) = ""
* StrUtil.subSufByLength("abcde", 5) = "abcde"
* StrUtil.subSufByLength("abcde", 10) = "abcde"
* StrUtil.subSufByLength(null, 3) = null
* </pre>
*
* @param string 字符串
* @param length 切割长度
* @return 切割后后剩余的后半部分字符串
* @since 4.0.1
*/
public static String subSufByLength(CharSequence string, int length) {
if (isEmpty(string)) {
return null;
}
if (length <= 0) {
return EMPTY;
}
return sub(string, -length, string.length());
}
代码示例来源:origin: looly/hutool
/**
* 补充字符串以满足最小长度
*
* <pre>
* StrUtil.padAfter(null, *, *);//null
* StrUtil.padAfter("1", 3, '0');//"100"
* StrUtil.padAfter("123", 2, '0');//"23"
* </pre>
*
* @param str 字符串,如果为<code>null</code>,按照空串处理
* @param minLength 最小长度
* @param padChar 补充的字符
* @return 补充后的字符串
*/
public static String padAfter(CharSequence str, int minLength, char padChar) {
if (null == str) {
return null;
}
final int strLen = str.length();
if (strLen == minLength) {
return str.toString();
} else if (strLen > minLength) {
return sub(str, strLen - minLength, strLen);
}
return str.toString().concat(repeat(padChar, minLength - strLen));
}
代码示例来源:origin: looly/hutool
/**
* 去掉字符包装,如果未被包装则返回原字符串
*
* @param str 字符串
* @param prefix 前置字符
* @param suffix 后置字符
* @return 去掉包装字符的字符串
* @since 4.0.1
*/
public static String unWrap(CharSequence str, char prefix, char suffix) {
if (isEmpty(str)) {
return str(str);
}
if (str.charAt(0) == prefix && str.charAt(str.length() - 1) == suffix) {
return sub(str, 1, str.length() - 1);
}
return str.toString();
}
代码示例来源:origin: looly/hutool
/**
* 去掉字符包装,如果未被包装则返回原字符串
*
* @param str 字符串
* @param prefix 前置字符
* @param suffix 后置字符
* @return 去掉包装字符的字符串
* @since 4.0.1
*/
public static String unWrap(CharSequence str, char prefix, char suffix) {
if (isEmpty(str)) {
return str(str);
}
if (str.charAt(0) == prefix && str.charAt(str.length() - 1) == suffix) {
return sub(str, 1, str.length() - 1);
}
return str.toString();
}
代码示例来源:origin: looly/hutool
/**
* 补充字符串以满足最小长度
*
* <pre>
* StrUtil.padAfter(null, *, *);//null
* StrUtil.padAfter("1", 3, '0');//"100"
* StrUtil.padAfter("123", 2, '0');//"23"
* </pre>
*
* @param str 字符串,如果为<code>null</code>,按照空串处理
* @param minLength 最小长度
* @param padChar 补充的字符
* @return 补充后的字符串
*/
public static String padAfter(CharSequence str, int minLength, char padChar) {
if (null == str) {
return null;
}
final int strLen = str.length();
if (strLen == minLength) {
return str.toString();
} else if (strLen > minLength) {
return sub(str, strLen - minLength, strLen);
}
return str.toString().concat(repeat(padChar, minLength - strLen));
}
代码示例来源:origin: looly/hutool
/**
* 删除正则匹配到的内容之前的字符 如果没有找到,则返回原文
*
* @param regex 定位正则
* @param content 被查找的内容
* @return 删除前缀后的新内容
*/
public static String delPre(String regex, CharSequence content) {
if (null == content || null == regex) {
return StrUtil.str(content);
}
// Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
final Pattern pattern = PatternPool.get(regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
return StrUtil.sub(content, matcher.end(), content.length());
}
return StrUtil.str(content);
}
代码示例来源:origin: looly/hutool
/**
* 删除正则匹配到的内容之前的字符 如果没有找到,则返回原文
*
* @param regex 定位正则
* @param content 被查找的内容
* @return 删除前缀后的新内容
*/
public static String delPre(String regex, CharSequence content) {
if (null == content || null == regex) {
return StrUtil.str(content);
}
// Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
final Pattern pattern = PatternPool.get(regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
return StrUtil.sub(content, matcher.end(), content.length());
}
return StrUtil.str(content);
}
代码示例来源:origin: looly/hutool
/**
* 从content中匹配出多个值并根据template生成新的字符串<br>
* 匹配结束后会删除匹配内容之前的内容(包括匹配内容)<br>
* 例如:<br>
* content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5
*
* @param pattern 匹配正则
* @param contentHolder 被匹配的内容的Holder,value为内容正文,经过这个方法的原文将被去掉匹配之前的内容
* @param template 生成内容模板,变量 $1 表示group1的内容,以此类推
* @return 新字符串
*/
public static String extractMultiAndDelPre(Pattern pattern, Holder<CharSequence> contentHolder, String template) {
if (null == contentHolder || null == pattern || null == template) {
return null;
}
HashSet<String> varNums = findAll(PatternPool.GROUP_VAR, template, 1, new HashSet<String>());
final CharSequence content = contentHolder.get();
Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
for (String var : varNums) {
int group = Integer.parseInt(var);
template = template.replace("$" + var, matcher.group(group));
}
contentHolder.set(StrUtil.sub(content, matcher.end(), content.length()));
return template;
}
return null;
}
代码示例来源:origin: looly/hutool
/**
* 从content中匹配出多个值并根据template生成新的字符串<br>
* 匹配结束后会删除匹配内容之前的内容(包括匹配内容)<br>
* 例如:<br>
* content 2013年5月 pattern (.*?)年(.*?)月 template: $1-$2 return 2013-5
*
* @param pattern 匹配正则
* @param contentHolder 被匹配的内容的Holder,value为内容正文,经过这个方法的原文将被去掉匹配之前的内容
* @param template 生成内容模板,变量 $1 表示group1的内容,以此类推
* @return 新字符串
*/
public static String extractMultiAndDelPre(Pattern pattern, Holder<CharSequence> contentHolder, String template) {
if (null == contentHolder || null == pattern || null == template) {
return null;
}
HashSet<String> varNums = findAll(PatternPool.GROUP_VAR, template, 1, new HashSet<String>());
final CharSequence content = contentHolder.get();
Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
for (String var : varNums) {
int group = Integer.parseInt(var);
template = template.replace("$" + var, matcher.group(group));
}
contentHolder.set(StrUtil.sub(content, matcher.end(), content.length()));
return template;
}
return null;
}
内容来源于网络,如有侵权,请联系作者删除!