gpt4 book ai didi

java - 为什么 Java Character.toUpperCase/toLowerCase 没有像 String.toUpperCase/toLowerCase 这样的 Locale 参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:18:32 31 4
gpt4 key购买 nike

我想知道为什么 Character.toUpperCase/toLowerCase 没有像 String.toUpperCase/toLowerCase 这样的 Locale 参数。

我必须首先将可以使用任何语言的文本大写。我有 2 个解决方案:

  1. 使用Character.toUpperCase

    String 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
  2. 使用String.toUpperCase

    Locale 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/toLowerCaseString.toUpperCase/没有太大区别toLowerCase 因为字符串是字符数组。

最佳答案

正如 Javadoc 所说:

In general, String.toUpperCase() should be used to map characters to uppercase. String case mapping methods have several benefits over Character case mapping methods. String case mapping methods can perform locale-sensitive mappings, context-sensitive mappings, and 1:M character mappings, whereas the Character case mapping methods cannot.

所以使用String.toUppercase()

关于java - 为什么 Java Character.toUpperCase/toLowerCase 没有像 String.toUpperCase/toLowerCase 这样的 Locale 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515060/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com