我正在重构我的一些旧代码,然后我发现我在某个时候使用了Character.toTitleCase()
方法,不禁想知道Character.toUpperCase()
是否会更好。
我阅读了他们的描述,没有看到任何基本差异:
touppercase
转换角色 使用案例映射信息的大写论点 Unicodedata文件。注意 tarne.isuppercase(artial.touppercase(ch))并不总是 返回一些字符范围,尤其是那些字符的范围 符号或意识形志。
通常,应使用String.touppercase()将字符映射到 大写。字符串案例映射方法有几个好处 字符案例映射方法。字符串案例映射方法可以 执行环境敏感的映射,上下文敏感映射和1:M 字符映射,而角色案例映射方法不能。
注意:此方法无法处理补充字符。支持 所有Unicode字符,包括补充字符,都使用 touppercase(int)方法。
和
totitlecase
使用案例映射将字符参数转换为titlecase 来自Unicodedata文件的信息。如果角色没有明确的 Titlecase映射,并不是根据Titlecase Char的 Unicodedata,然后将大写映射返回为等效的 滴定酶映射。如果char论点已经是titlecase char, 相同的字符值将返回。注意 tarne.istiTlecase(targin.totitlecase(ch))并不总是 返回某些字符范围的true。
注意:此方法无法处理补充字符。支持 所有Unicode字符,包括补充字符,都使用 totitlecase(int)方法。
然后我尝试这样测试:
public class Test {
public static void main(String... args) {
String originalString = "abcdefghijklmnopqrstuvwxyz123546-.,/*&%+";
StringBuilder upperCaseStringBuilder = new StringBuilder();
StringBuilder titleCaseStringBuilder = new StringBuilder();
for (int i = 0; i < originalString.length(); i++) {
upperCaseStringBuilder.append(Character.toUpperCase(originalString.charAt(i)));
titleCaseStringBuilder.append(Character.toTitleCase(originalString.charAt(i)));
}
System.out.println("Original String : " + originalString);
System.out.println("UpperCase result: " + upperCaseStringBuilder.toString());
System.out.println("TitleCase result: " + titleCaseStringBuilder.toString());
}
}
这是输出:
Original String : abcdefghijklmnopqrstuvwxyz123546-.,/*&%+
UpperCase result: ABCDEFGHIJKLMNOPQRSTUVWXYZ123546-.,/*&%+
TitleCase result: ABCDEFGHIJKLMNOPQRSTUVWXYZ123546-.,/*&%+
所以我无法理解这两种方法之间的区别。如前所述,我在代码中使用toTitleCase()
来大写String
。
我没有考虑过任何关键区别,并且在某些特殊情况下可能会导致我的代码表现出色?
注意:我不认为这是字符串的重复 - 更好的方式。因为在这个问题中,问题与字符串大写的性能相同,而不是像这个问题中的字符和标题案例一样。
标准ASCII字符太无聊了!这更令人兴奋:
System.out.println(Character.toTitleCase('dz')); // Dz
System.out.println(Character.toUpperCase('dz')); // DZ
实时演示。
我在这里没有真正看到任何"真实"差异,我认为最好不要过度思考小细节。我想在这里指出这条唯一的行,可以在这里解决"问题"。
通常,String.toUpperCase()
应用于将字符映射到大写。字符串案例映射方法比字符案例映射方法具有多个好处。
文档String.toUpperCase()
:https://www.w3schools.com/jsref/jsref_touppercase.asp
其他人如果有更多的内部信息。