### Question:
StringUtils { public static String replaceUnsupportedSymbols(String str) { StringBuilder sb = new StringBuilder(); int len = str.length(); char[] tmp = new char[len]; str.getChars(0, len, tmp, 0); char c = tmp[0]; if (Character.isUnicodeIdentifierPart(c) && !Character.isDigit(c)) { sb.append(c); } else { sb.append(SUBSTITUTE_CHAR); } for (int i = 1; i < len; i++) { char ch = tmp[i]; if (Character.isUnicodeIdentifierPart(ch)) { sb.append(ch); } else { sb.append(SUBSTITUTE_CHAR); } } return sb.toString(); }  static String join(String separator, String... parts); static String[] toStringArray(Object... args); static Set<String> split(String aSource, String aDelimiter); static String replaceUnsupportedSymbols(String str); static String replaceFileNamesInvalidCharacters(String str); static Integer parseInt(String str, Integer defaultValue); static String formatDouble(double aValue); static String capitalize(String aValue); static String readReader(Reader aReader, int length);  }### Answer:
@Test public void testReplaceUnsupportedSymbols() { System.out.println("replaceUnsupportedSymbols"); String str = "test"; String expResult = "test"; String result = StringUtils.replaceUnsupportedSymbols(str); assertEquals(expResult, result); str = "1test"; expResult = "_test"; result = StringUtils.replaceUnsupportedSymbols(str); assertEquals(expResult, result); str = "te st"; expResult = "te_st"; result = StringUtils.replaceUnsupportedSymbols(str); assertEquals(expResult, result); str = "te*st"; expResult = "te_st"; result = StringUtils.replaceUnsupportedSymbols(str); assertEquals(expResult, result); }