【问题标题】:Convert a String to title case in android在android中将字符串转换为标题大小写
【发布时间】:2015-09-29 19:29:50
【问题描述】:

在将我的问题标记为duplicate 之前,请注意该线程中对于“标题大小写”的含义存在根本性的误解。在英语中,Title Case 与将每个单词大写不同。在标题中,我们应该

  • 将名词、代词、形容词、动词、副词和从属连词大写。
  • 小写冠词(a、an、the)、并列连词和介词。

由于我指出的类似问题也有点过时,我想知道是否有人知道 android 中有任何工具可以将字符串转换为标题大小写?或者是推出我自己的课程的唯一选择?

如果您关心一些背景知识,我正在构建一个应用程序,该应用程序除了专家生成的内容外,还包含一些用户生成的内容。我希望我的应用程序看起来既智能又专业。所以对于 EditText,我启用了textAutoComplete|textAutoCorrect。但此外,我希望标题看起来像标题,而不仅仅是随机用户输入的字符串。

【问题讨论】:

  • 有趣。在德语中,您应该只大写名词和人名(如果有的话,名字、姓氏和中间名)。以及标记之后的第一个字母(当然)。如本句所示。开个玩笑,这篇关于 codereview 的帖子可能会引起一些兴趣……或者是吗? codereview.stackexchange.com/questions/100832/…
  • 恐怕你得为此写一些代码。

标签: android string android-edittext capitalization title-case


【解决方案1】:

这是很晚的答案,但可能可以帮助其他人。

public static String changeStringCase(String s) {

final String DELIMITERS = " '-/"; 

StringBuilder sb = new StringBuilder();
boolean capNext = true;

for (char c : s.toCharArray()) {
    c = (capNext)
            ? Character.toUpperCase(c)
            : Character.toLowerCase(c);
    sb.append(c);
    capNext = (DELIMITERS.indexOf((int) c) >= 0); 
}
return sb.toString(); }

输出将是

  1. 更改大小写 --> 更改大小写
  2. 更改大小写 --> 更改大小写
  3. 更改大小写 --> 更改大小写

等等。

【讨论】:

    猜你喜欢
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多