【问题标题】:Difference between uppercase and titlecase大写字母和大写字母的区别
【发布时间】:2015-10-24 14:21:22
【问题描述】:

uppercasetitlecase 有什么区别。 坦率地说,我以前从未听说过titlecase

在java中,两者都有不同的方法:

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

有些网站是这样定义的:

TitleCase:匹配由大写字母和小写字母组合的字符,例如 Nj 和 Dz

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

【问题讨论】:

标签: java unicode title-case


【解决方案1】:

它只接受一个 Unicode 字符。事实证明,DŽ 实际上只有一个字符:看看它在等宽字体中的显示方式:DŽ。大写版本为Dž,也存在小写版本dž

【讨论】:

  • 哇,我不知道!我想这是在特定语言中使用的东西? (不是英语或法语吗?)
  • 我能想到的最接近的情况是 œ 和 æ,但它们的行为不同:fileformat.info/info/unicode/char/0153/index.htm
  • @bvdb 发生这种情况的原因是为了与发生此类事情的旧编码兼容。例如,在 MacRoman 编码中,字节 0xDE 映射到 U+FB01 LATIN SMALL LIGATURE FI(所以一个 fi 字符),字节 0xDF 映射到 U+FB02 LATIN SMALL LIGATURE FL(一个 f b> 字符)。往返保证让您可以无损地从 MacRoman 转换为 Unicode 并再次转换回 MacRoman,而无需进行任何更改。
【解决方案2】:

什么是标题:

  • 在某些语言和文字中,有二合字母 - 即单个 Unicode 代码点,它是 2 个人类可读字符的组合,显示为一种组合字形。

  • 只有二合字母可以是大写字母 - 即“dz”的小写二合字母对应大写“DZ”和大写字母“Dz”。

  • 所以,“大写”、“标题”和“小写”

它只接受一个 Unicode 字符。

不完全正确。

希腊语有很多首字母大写字形,还有比“DZ”更多的拉丁首字母大写。

要查看世界上所有的标题字符,请启动 Excel(或免费的 Power BI Desktop 应用程序),然后数据/获取数据/空白查询,并通过将以下 Power Query M 语言查询复制粘贴到 Query/ 来执行高级编辑器:

let
 downloaded = Web.Contents("https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt"),
 csv = Csv.Document(downloaded,
                    [Delimiter=";",
                      Encoding=65001, // UTF-8
                      QuoteStyle=QuoteStyle.None // allow line breaks within the quoted string
                    ]),
    #"Removed Other Columns" = Table.SelectColumns(csv,{"Column1", "Column2", "Column3"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Other Columns",{{"Column1", "Character code"}, {"Column2", "Character name"}, {"Column3", "Category"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns", "Glyph", each Character.FromNumber(Expression.Evaluate("0x" & [Character code]))),
    #"Reordered Columns" = Table.ReorderColumns(#"Added Custom",{"Character code", "Glyph", "Character name", "Category"}),
    #"Filtered Rows" = Table.SelectRows(#"Reordered Columns", each [Category] = "Lt")
in
    #"Filtered Rows"

【讨论】:

  • 'ij' 的标题是什么?
  • @Ṃųỻịgǻňạcểơửṩ,“ij”的任何大小写都不作为单个 Unicode 字符存在。您可以将其键入为 2 个单独的字符“Ij”以获得所需的效果,但只有单个字母“I”可以被视为标题大小写,而不是“Ij”的组合,因为它们是 2 个单独的字符。
【解决方案3】:

我知道之前已经回答过,但我只是添加一个非常快速的细分:

组合字符:

  • DŽ = 仅大写
  • dž = 仅小写
  • Dž = 仅限标题

单个字符:

  • D = 大写和大写
  • d = 仅小写

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多