在这个快速教程中,我们将探索CharMatcher在番石榴实用类。

1.删除特殊字符字符串

让我们从删除所有特殊字符字符串

在下面的例子中,我们删除了所有非数字或字母的字符retainFrom ():

@Test public void whenRemoveSpecialCharacters_thenRemoved(){String input = "H*el.lo,}12";CharMatcher matcher = CharMatcher. javaletterordigit ();String result = match . retainfrom(输入);assertequal(“Hello12”,结果);}

2.从字符串中移除非ASCII字符

我们也可以用CharMatcher将非ASCII字符从字符串如下面的例子:

@Test公共空whenRemoveNonASCIIChars_thenRemoved(){字符串输入=“あ你好₤”;String result = CharMatcher.ascii().retainFrom(输入);assertequal(“hello”,结果);结果= CharMatcher。inRange (' 0 ', ' z ') .retainFrom(输入);assertequal(“hello”,结果);}

3.删除不在字符集

现在,让我们看看如何删除不属于给定的字符字符集。在下面的例子中,我们将删除不属于“cp437”的字符字符集:

@Test public void whenRemoveCharsNotInCharset_thenRemoved() {Charset Charset = Charset. forname ("cp437");CharsetEncoder encoder = charset.newEncoder();Predicate inRange = new Predicate() {@Override public boolean apply(Character c) {return encoder.canEncode(c);}};字符串的结果= CharMatcher.forPredicate (inRange) .retainFrom(“你好は”);assertequal(“hello”,结果);}

注意:我们使用CharsetEncoder创建一个谓词那张支票字符能否编码到给定字符集

4.验证字符串

接下来,让我们看看如何验证字符串使用CharMatcher

我们可以使用matchesAllOf ()检查是否所有字符都匹配一个条件。我们可以利用matchesNoneOf ()检查条件是否不适用于任何字符串字符。

在下面的例子中,我们将检查字符串为小写,至少包含一个'e'字符,不包含任何数字:

@Test public void whenValidateString_thenValid(){String input = "hello";boolean result = CharMatcher.javaLowerCase().matchesAllOf(输入);assertTrue(结果);结果= CharMatcher.is (e) .matchesAnyOf(输入);assertTrue(结果);结果= CharMatcher.javaDigit () .matchesNoneOf(输入);assertTrue(结果);}

5.修剪字符串

现在,我们来看看a的边长字符串使用CharMatcher

在下面的例子中,我们使用trimLeading (),trimTrailingtrimFrom ()调整我们的字符串:

@Test public void whenTrimString_thenTrimmed() {String input = "——hello…";String result = CharMatcher.is('-').trimLeadingFrom(input);assertequal(“你好……”,结果);结果= CharMatcher.is (" ") .trimTrailingFrom(输入);assertequal(“hello”,结果);结果= CharMatcher.anyOf(“-”).trimFrom(输入);assertequal(“hello”,结果);}

6.崩溃了字符串

接下来,让我们看看如何折叠字符串使用CharMatcher

在下面的例子中,我们使用collapseFrom ()将连续的空格替换为'- - - - - -”:

@Test public void whencollapsefromstring_thencollapse () {String input = " hello ";String result = CharMatcher。(' ')。collapseFrom(输入,“-”);assertequal(“-hel-lo——”,结果);结果= CharMatcher。(' ')。trimAndCollapseFrom(输入,“-”);assertequal(“hel-lo”,结果);}

7.取代的字符串

我们可以使用CharMatcher对象中的特定字符字符串如下面的例子:

@Test public void whenreplacefromstring_thenreplace () {String input = "apple-banana.";String result = CharMatcher.anyOf("-.")。replaceFrom(输入,'。');assertequal(“苹果,香蕉!”,结果);结果= CharMatcher.is(“-”)。replaceFrom(input, " and ");assertEquals("apple and banana.", result);}

8.数字符出现

最后,让我们看看如何计算使用字符的出现次数CharMatcher

在下面的例子中,我们计算'之间的逗号和字符一个“:”h”:

@Test public void whencountcharinstring_thcorrect () {String input = "a, c, z, 1,2 ";int result = CharMatcher.is(',').countIn(输入);assertequal(4,结果);结果= CharMatcher。inRange (' a ', ' h ') .countIn(输入);assertequal(2,结果);}

9.结论

在本文中,我们演示了一些更有用的api和将番石榴用于字符串的实际使用示例。

完整的源代码是可用的在GitHub

通用的底部

开始使用Spring 5和Spring Boot 2,通过学习的春天课程:

>>看看这个课程
对这篇文章的评论关闭!