gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 19:02:22 27 4
gpt4 key购买 nike

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

我必须将任何语言的文本首字母大写。我有两个解决方案:

  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 因为 String 是字符数组。

最佳答案

正如 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/59615894/

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