Character.toUpperCase() 和 Character.toTitleCase() 有什么区别



我正在重构我的一些旧代码,然后我发现我在某个时候使用了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

其他人如果有更多的内部信息。

最新更新