private static AsciiSet getEscapeSet(char c) { AsciiSet s = ESCAPE_SETS.get(c); if (s == null) { s = AsciiSet.create().chars(c, '\\').build(); ESCAPE_SETS.put(c, s); } return s; } static Map<Character,AsciiSet> ESCAPE_SETS = new ConcurrentHashMap<>();
private static AsciiSet getEscapeSet(char c) { AsciiSet s = ESCAPE_SETS.get(c); if (s == null) { s = AsciiSet.create().chars(c, '\\').build(); ESCAPE_SETS.put(c, s); } return s; } static Map<Character,AsciiSet> ESCAPE_SETS = new ConcurrentHashMap<>();
private static AsciiSet getEscapeSet(char c) { AsciiSet s = ESCAPE_SETS.get(c); if (s == null) { s = AsciiSet.create().chars(c, '\\').build(); ESCAPE_SETS.put(c, s); } return s; } static Map<Character,AsciiSet> ESCAPE_SETS = new ConcurrentHashMap<>();
@Test public void test() throws Exception { AsciiSet cs = AsciiSet.create("abc\u1234"); assertTrue(cs.contains('a')); assertFalse(cs.contains('d')); assertFalse(cs.contains('\u1234')); assertFalse(cs.contains((char)-1)); assertFalse(cs.contains((char)128)); } }
@Test public void testUnescapeChars() throws Exception { AsciiSet escape = AsciiSet.create("\\,|"); assertNull(unEscapeChars(null, escape)); assertEquals("xxx", unEscapeChars("xxx", escape)); assertEquals("xxx", unEscapeChars("xxx", escape)); assertEquals("x,xx", unEscapeChars("x\\,xx", escape)); assertEquals("x\\xx", unEscapeChars("x\\xx", escape)); assertEquals("x\\,xx", unEscapeChars("x\\\\,xx", escape)); assertEquals("x\\,xx", unEscapeChars("x\\\\\\,xx", escape)); assertEquals("\\", unEscapeChars("\\", escape)); assertEquals(",", unEscapeChars("\\,", escape)); assertEquals("|", unEscapeChars("\\|", escape)); escape = AsciiSet.create(",|"); assertEquals("x\\\\xx", unEscapeChars("x\\\\xx", escape)); }