mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
CharSequenceUtil类添加startWith,endWith,remove方法✒️
This commit is contained in:
parent
bc9ef1994b
commit
442d4bd854
@ -4,6 +4,7 @@ import cn.hutool.core.comparator.VersionComparator;
|
|||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.lang.Filter;
|
import cn.hutool.core.lang.Filter;
|
||||||
|
import cn.hutool.core.lang.PatternPool;
|
||||||
import cn.hutool.core.lang.func.Func1;
|
import cn.hutool.core.lang.func.Func1;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.CharUtil;
|
import cn.hutool.core.util.CharUtil;
|
||||||
@ -765,6 +766,50 @@ public class CharSequenceUtil {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串是否以(数字)开始
|
||||||
|
*
|
||||||
|
* @param str 字符串
|
||||||
|
* @return 是否数字开始
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static boolean startWithNumber(CharSequence str) {
|
||||||
|
return isNotBlank(str) && PatternPool.NUMBERS.matcher(str.subSequence(0, 1)).find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串是否以(英文字母 、数字和下划线)开始
|
||||||
|
*
|
||||||
|
* @param str 字符串
|
||||||
|
* @return 是否英文字母 、数字和下划线开始
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static boolean startWithGeneral(CharSequence str) {
|
||||||
|
return isNotBlank(str) && PatternPool.GENERAL.matcher(str.subSequence(0, 1)).find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串是否以(字母)开始
|
||||||
|
*
|
||||||
|
* @param str 字符串
|
||||||
|
* @return 是否字母开始
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static boolean startWithWord(CharSequence str) {
|
||||||
|
return isNotBlank(str) && PatternPool.WORD.matcher(str.subSequence(0, 1)).find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串是否以(中文汉字)开始
|
||||||
|
*
|
||||||
|
* @param str 字符串
|
||||||
|
* @return 是否中文汉字开始
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static boolean startWithChinese(CharSequence str) {
|
||||||
|
return isNotBlank(str) && PatternPool.CHINESES.matcher(str.subSequence(0, 1)).find();
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------ endWith
|
// ------------------------------------------------------------------------ endWith
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -868,6 +913,50 @@ public class CharSequenceUtil {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串是否以(数字)结束
|
||||||
|
*
|
||||||
|
* @param str 字符串
|
||||||
|
* @return 是否数字结束
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static boolean endWithNumber(CharSequence str) {
|
||||||
|
return isNotBlank(str) && PatternPool.NUMBERS.matcher(str.subSequence(str.length() - 1, str.length())).find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串是否以(英文字母 、数字和下划线)结束
|
||||||
|
*
|
||||||
|
* @param str 字符串
|
||||||
|
* @return 是否英文字母 、数字和下划线结束
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static boolean endWithGeneral(CharSequence str) {
|
||||||
|
return isNotBlank(str) && PatternPool.GENERAL.matcher(str.subSequence(str.length() - 1, str.length())).find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串是否以(字母)结束
|
||||||
|
*
|
||||||
|
* @param str 字符串
|
||||||
|
* @return 是否字母结束
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static boolean endWithWord(CharSequence str) {
|
||||||
|
return isNotBlank(str) && PatternPool.WORD.matcher(str.subSequence(str.length() - 1, str.length())).find();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串是否以(中文汉字)结束
|
||||||
|
*
|
||||||
|
* @param str 字符串
|
||||||
|
* @return 是否中文汉字结束
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static boolean endWithChinese(CharSequence str) {
|
||||||
|
return isNotBlank(str) && PatternPool.CHINESES.matcher(str.subSequence(str.length() - 1, str.length())).find();
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------ contains
|
// ------------------------------------------------------------------------ contains
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1505,6 +1594,28 @@ public class CharSequenceUtil {
|
|||||||
return str2;
|
return str2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剔除/移除字符串中的所有数字
|
||||||
|
*
|
||||||
|
* @param str 当前字符串
|
||||||
|
* @return 移除数字后的字符串
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static String removeNumbers(CharSequence str) {
|
||||||
|
return ReUtil.delAll(PatternPool.NUMBERS, str);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剔除/移除字符串中的所有中文
|
||||||
|
*
|
||||||
|
* @param str 当前字符串
|
||||||
|
* @return 移除中文后的字符串
|
||||||
|
* @since 5.6.5
|
||||||
|
*/
|
||||||
|
public static String removeChinese(CharSequence str) {
|
||||||
|
return ReUtil.delAll(PatternPool.CHINESES, str);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 清理空白字符
|
* 清理空白字符
|
||||||
*
|
*
|
||||||
|
@ -24,4 +24,127 @@ public class CharSequenceUtilTest {
|
|||||||
result = CharSequenceUtil.addSuffixIfNot(str, " is Good");
|
result = CharSequenceUtil.addSuffixIfNot(str, " is Good");
|
||||||
Assert.assertEquals( str + " is Good", result);
|
Assert.assertEquals( str + " is Good", result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void startWithNumberTest() throws Exception {
|
||||||
|
String var1 = "123str";
|
||||||
|
String var2 = "180公斤";
|
||||||
|
String var3 = "str";
|
||||||
|
String var4 = "身高180";
|
||||||
|
Assert.assertTrue(CharSequenceUtil.startWithNumber(var1));
|
||||||
|
Assert.assertTrue(CharSequenceUtil.startWithNumber(var2));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.startWithNumber(var3));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.startWithNumber(var4));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void startWithGeneralTest() throws Exception {
|
||||||
|
String var1 = "str";
|
||||||
|
String var2 = "123";
|
||||||
|
String var3 = "_str";
|
||||||
|
String var4 = "身高180";
|
||||||
|
Assert.assertTrue(CharSequenceUtil.startWithGeneral(var1));
|
||||||
|
Assert.assertTrue(CharSequenceUtil.startWithGeneral(var2));
|
||||||
|
Assert.assertTrue(CharSequenceUtil.startWithGeneral(var3));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.startWithGeneral(var4));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void startWithWordTest() throws Exception {
|
||||||
|
String var1 = "str";
|
||||||
|
String var2 = "123";
|
||||||
|
String var3 = "_str";
|
||||||
|
String var4 = "身高180";
|
||||||
|
Assert.assertTrue(CharSequenceUtil.startWithWord(var1));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.startWithWord(var2));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.startWithWord(var3));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.startWithWord(var4));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void startWithChineseTest() throws Exception {
|
||||||
|
String var1 = "str";
|
||||||
|
String var2 = "_str";
|
||||||
|
String var3 = "123";
|
||||||
|
String var4 = "身高180";
|
||||||
|
Assert.assertFalse(CharSequenceUtil.startWithChinese(var1));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.startWithChinese(var2));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.startWithChinese(var3));
|
||||||
|
Assert.assertTrue(CharSequenceUtil.startWithChinese(var4));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void endWithNumberTest() throws Exception {
|
||||||
|
String var1 = "str123";
|
||||||
|
String var2 = "身高180";
|
||||||
|
String var3 = "str";
|
||||||
|
String var4 = "180公斤";
|
||||||
|
Assert.assertTrue(CharSequenceUtil.endWithNumber(var1));
|
||||||
|
Assert.assertTrue(CharSequenceUtil.endWithNumber(var2));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.endWithNumber(var3));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.endWithNumber(var4));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void endWithGeneralTest() throws Exception {
|
||||||
|
String var1 = "str";
|
||||||
|
String var2 = "123";
|
||||||
|
String var3 = "str_";
|
||||||
|
String var4 = "180公斤";
|
||||||
|
Assert.assertTrue(CharSequenceUtil.endWithGeneral(var1));
|
||||||
|
Assert.assertTrue(CharSequenceUtil.endWithGeneral(var2));
|
||||||
|
Assert.assertTrue(CharSequenceUtil.endWithGeneral(var3));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.endWithGeneral(var4));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void endWithWordTest() throws Exception {
|
||||||
|
String var1 = "str";
|
||||||
|
String var2 = "_str";
|
||||||
|
String var3 = "123";
|
||||||
|
String var4 = "身高180";
|
||||||
|
Assert.assertTrue(CharSequenceUtil.endWithWord(var1));
|
||||||
|
Assert.assertTrue(CharSequenceUtil.endWithWord(var2));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.endWithWord(var3));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.endWithWord(var4));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void endWithChineseTest() throws Exception {
|
||||||
|
String var1 = "str";
|
||||||
|
String var2 = "_str";
|
||||||
|
String var3 = "123";
|
||||||
|
String var4 = "180公斤";
|
||||||
|
Assert.assertFalse(CharSequenceUtil.endWithChinese(var1));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.endWithChinese(var2));
|
||||||
|
Assert.assertFalse(CharSequenceUtil.endWithChinese(var3));
|
||||||
|
Assert.assertTrue(CharSequenceUtil.endWithChinese(var4));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------ remove
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void removeNumbersTest(){
|
||||||
|
String var1 = "";
|
||||||
|
String var2 = "str";
|
||||||
|
String var3 = "身高180";
|
||||||
|
String var4 = "身高180体重180";
|
||||||
|
Assert.assertEquals("", CharSequenceUtil.removeNumbers(var1));
|
||||||
|
Assert.assertEquals("str", CharSequenceUtil.removeNumbers(var2));
|
||||||
|
Assert.assertEquals("身高", CharSequenceUtil.removeNumbers(var3));
|
||||||
|
Assert.assertEquals("身高体重", CharSequenceUtil.removeNumbers(var4));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void removeChineseTest(){
|
||||||
|
String var1 = "";
|
||||||
|
String var2 = "str";
|
||||||
|
String var3 = "身高180";
|
||||||
|
String var4 = "身高180体重180cm";
|
||||||
|
Assert.assertEquals("", CharSequenceUtil.removeChinese(var1));
|
||||||
|
Assert.assertEquals("str", CharSequenceUtil.removeChinese(var2));
|
||||||
|
Assert.assertEquals("180", CharSequenceUtil.removeChinese(var3));
|
||||||
|
Assert.assertEquals("180180cm", CharSequenceUtil.removeChinese(var4));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user