【发布时间】:2014-10-22 18:59:11
【问题描述】:
我想知道为什么 Character.toUpperCase/toLowerCase 没有像 String.toUpperCase/toLowerCase 这样的 Locale 参数。
我必须首先将可以是任何语言的文本大写。我有 2 个解决方案:
-
使用
Character.toUpperCaseString text = "stack overflow"; StringBuilder sb = new StringBuilder(text); sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); // No Locale parameter here. String out = sb.toString(); //Out: Stack overflow -
使用
String.toUpperCaseLocale myLocale = new Locale(locateId); String text = "stack overflow"; String text1 = text.substring(0,1).toUpperCase(myLocale ); String text2 = text.substring(1); String out = text1 + text2; // Out: Stack overflow
对于我的语言环境。两种方式的结果相同。
我的问题是:
因为文本可以是任何语言。我应该使用哪种方式?
为什么
Character.toUpperCase/toLowerCase没有Locale 参数,因为Character.toUpperCase/toLowerCase和String.toUpperCase/toLowerCase之间没有太大区别,因为String 是字符数组。
【问题讨论】:
-
请注意,javadoc 建议使用
String的版本进行区域敏感映射。
标签: java locale multilingual uppercase lowercase