相关疑难解决方法(0)

字符串转换为Title Case

是否有任何内置方法可以将字符串转换为Title Case格式?

java string title-case

95
推荐指数
7
解决办法
11万
查看次数

大写与标题之间的区别

uppercase和之间的区别是什么titlecase. 坦率地说,我以前从未听说titlecase过.

在java中,两者都有单独的方法:

  • Character.isTitleCase(char)
  • Character.isUpperCase(char)

有些网站将其定义如下:

TitleCase:匹配将大写字母与小写字母组合在一起的字符,例如Nj和Dz

但必须有更多:该isTitleCase(char)方法只接受1个字符.所以 - 如果是这种情况 - 那么这个方法至少需要2个字符.

java title-case unicode

18
推荐指数
2
解决办法
1929
查看次数

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

我正在重构我的一些旧代码,然后我发现我Character.toTitleCase()在某些时候使用过方法并且无法帮助自己想知道是否Character.toUpperCase()会更好.

我阅读了他们的描述并没有看到任何基本的区别:

toUpperCase

使用UnicodeData文件中的大小写映射信息将字符参数转换为大写.请注意,对于某些字符范围,Character.isUpperCase(Character.toUpperCase(ch))并不总是返回true,特别是那些符号或表意符号.

通常,String.toUpperCase()应该用于将字符映射到大写.字符串大小写映射方法比字符大小写映射方法有几个好处.字符串大小写映射方法可以执行区域设置敏感的映射,上下文相关的映射和1:M字符映射,而字符大小写映射方法则不能.

注意:此方法无法处理补充字符.要支持所有Unicode字符(包括增补字符),请使用toUpperCase(int)方法.

toTitleCase

使用UnicodeData文件中的大小写映射信息将字符参数转换为titlecase.如果一个字符没有明确的标题映射,并且根据UnicodeData本身不是一个标题字符串,那么大写映射将作为等效的标题映射返回.如果char参数已经是titlecase char,则返回相同的char值.请注意,对于某些字符范围,Character.isTitleCase(Character.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());
  }
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

Original String : abcdefghijklmnopqrstuvwxyz123546-.,/*&%+
UpperCase result: ABCDEFGHIJKLMNOPQRSTUVWXYZ123546-.,/*&%+
TitleCase …
Run Code Online (Sandbox Code Playgroud)

java character

11
推荐指数
1
解决办法
745
查看次数

标签 统计

java ×3

title-case ×2

character ×1

string ×1

unicode ×1