[ https://issues.apache.org/jira/browse/TEXT-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16086076#comment-16086076 ]
Amey Jadiye commented on TEXT-47: --------------------------------- I don't see even java have solution for this ? can we just create map and lookup from it whenever these kind of char comes for conversion ? > WordUtils.capitalize() can't handle 1:M conversions > --------------------------------------------------- > > Key: TEXT-47 > URL: https://issues.apache.org/jira/browse/TEXT-47 > Project: Commons Text > Issue Type: Bug > Reporter: Duncan Jones > Fix For: 1.x > > > Some case conversions are not 1:1, for instance the German letter ß, which is > normally capitalised to 'SS'. > {code:java} > // Failing test > assertEquals("SS", WordUtils.capitalize("\u00DF")); > {code} > If we were using upper case and not title case, a solution such as the > following would work: > {code:java} > public static String capitalize(final String str, final char... delimiters) { > final int delimLen = delimiters == null ? -1 : delimiters.length; > if (StringUtils.isEmpty(str) || delimLen == 0) { > return str; > } > final StringBuffer buffer = new StringBuffer(str.length()); > final char[] chars = str.toCharArray(); > boolean capitalizeNext = true; > for (int i = 0; i < chars.length; i++) { > final char ch = chars[i]; > if (isDelimiter(ch, delimiters)) { > capitalizeNext = true; > buffer.append(ch); > } else if (capitalizeNext) { > // Use ENGLISH locale to be backwards compatible with previous > releases, which > // used Character.toUpperCase() > buffer.append(String.valueOf(ch).toUpperCase(Locale.ENGLISH)); > capitalizeNext = false; > } else { > buffer.append(ch); > } > } > return buffer.toString(); > } > {code} > ... but as we use title case, we can't use the String class to convert for us. -- This message was sent by Atlassian JIRA (v6.4.14#64029)