### Question:
DbreTypeUtils { public static String suggestPackageName(final String str) { final StringBuilder result = new StringBuilder(); final char[] value = str.toCharArray(); for (int i = 0; i < value.length; i++) { final char c = value[i]; if (i == 0 && ('1' == c || '2' == c || '3' == c || '4' == c || '5' == c || '6' == c || '7' == c || '8' == c || '9' == c || '0' == c)) { result.append("p"); result.append(c); } else if ('.' == c || '/' == c || ' ' == c || '*' == c || '>' == c || '<' == c || '!' == c || '@' == c || '%' == c || '^' == c || '?' == c || '(' == c || ')' == c || '~' == c || '`' == c || '{' == c || '}' == c || '[' == c || ']' == c || '|' == c || '\\' == c || '\'' == c || '+' == c || '-' == c) { result.append(""); } else { result.append(Character.toLowerCase(c)); } } return result.toString(); }  static JavaType findTypeForTable(
      final Iterable<ClassOrInterfaceTypeDetails> managedEntities, final Table table); static JavaType findTypeForTableName(
      final Iterable<ClassOrInterfaceTypeDetails> managedEntities, final String tableName,
      final String schemaName); static String getSchemaName(final MemberHoldingTypeDetails entityDetails); static String getTableName(final MemberHoldingTypeDetails entityDetails); static String suggestFieldName(final String name); static String suggestFieldName(final Table table); static String suggestPackageName(final String str); static JavaType suggestTypeNameForNewTable(final String tableName,
      final JavaPackage javaPackage);  }### Answer:
@Test public void testSuggestPackageName() { String tableName = "table2"; assertEquals("table2", DbreTypeUtils.suggestPackageName(tableName)); tableName = "1Roo-2424"; assertEquals("p1roo2424", DbreTypeUtils.suggestPackageName(tableName)); tableName = "/-roo_2425_p"; assertEquals("roo_2425_p", DbreTypeUtils.suggestPackageName(tableName)); }