### Question:
B2StringUtil { public static String percentDecode(String s) { try { return URLDecoder.decode(s, UTF8); } catch (UnsupportedEncodingException e) { throw new RuntimeException("UTF8 isn't supported? " + e.getMessage(), e); } } B2StringUtil(); static String percentEncode(String s); static String percentDecode(String s); static int decimalSubstringToInt(String s, int startIndex, int endIndex); static boolean decimalNumberInRange(String str, int offset, int length,
                                               int minInclusive, int maxInclusive); static String join(String delimiter, Object[] objects); static byte [] getUtf8Bytes(String str); static String toHexString(byte[] b); static String underscoresToCamelCase(String orig, boolean capitalizeFirstLetter); static boolean startsWithIgnoreCase(String all, String possiblePrefix); static final String UTF8; }### Answer:
@Test public void testPercentDecode() { assertEquals("", percentDecode("")); assertEquals("a--/--b--+--:--|-- --", percentDecode("a--/--b--%2B--%3A--%7C--+--")); }