From c6543d966226c9934e4668e85f8f444c29ce4510 Mon Sep 17 00:00:00 2001 From: DOHA Date: Thu, 18 Dec 2014 20:35:36 +0200 Subject: [PATCH] Add charset example --- .../org/baeldung/guava/GuavaStringTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/guava/src/test/java/org/baeldung/guava/GuavaStringTest.java b/guava/src/test/java/org/baeldung/guava/GuavaStringTest.java index e9b39f2a1d..4af04af581 100644 --- a/guava/src/test/java/org/baeldung/guava/GuavaStringTest.java +++ b/guava/src/test/java/org/baeldung/guava/GuavaStringTest.java @@ -6,6 +6,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import java.nio.charset.Charset; +import java.nio.charset.CharsetEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -15,6 +17,7 @@ import org.junit.Test; import com.google.common.base.CharMatcher; import com.google.common.base.Function; import com.google.common.base.Joiner; +import com.google.common.base.Predicate; import com.google.common.base.Splitter; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; @@ -196,4 +199,20 @@ public class GuavaStringTest { assertEquals(2, result); } + @Test + public void whenRemoveCharsNotInCharset_thenRemoved() { + final Charset charset = Charset.forName("cp437"); + final CharsetEncoder encoder = charset.newEncoder(); + + final Predicate inRange = new Predicate() { + @Override + public boolean apply(final Character c) { + return encoder.canEncode(c); + } + }; + + final String result = CharMatcher.forPredicate(inRange).retainFrom("helloは"); + assertEquals("hello", result); + } + }