【问题标题】:What is the last char in lexicography order?词典顺序中的最后一个字符是什么?
【发布时间】:2012-03-31 01:21:14
【问题描述】:

我想知道java中最后一个字符是什么? 我有一个处理词典中排序的单词的程序,我只想确保最多某个单词是最后一个这就是为什么我想知道它应该是什么字符?

已编辑:我不是指字符串中的最后一个字符。 更简单地说,我想知道字符串中的第一个字符应该是什么,我想在词法顺序中将其视为最后一个 - 注意:当我使用 string.compareTo 方法时?

【问题讨论】:

    标签: java char


    【解决方案1】:

    如果您谈论的是简单的char 值,那么答案是'\uffff'。 (Java char 值实际上只是带符号的 16 位整数,'\uffff'65535 是该类型可表示的最大整数。\u 是 Java 的 Unicode 转义语法。)

    但是,这忽略了一个事实,即单个 Java char 实例只能表示位于 Unicode 平面 0(BMP)内的 Unicode 代码点。该标准当前定义了平面 0 到 16。较高平面中的代码点表示为 Java char 值对;它们被称为代理对。

    需要决定您的应用程序是否需要处理代理对。 (这取决于您是否要支持在高级 Unicode 平面中使用“深奥”字符的文本。)如果支持,那么您将无法使用标准的 String.compareTo 方法等。我建议你看看ICU libraries

    【讨论】:

    • 根据您提供的信息编辑了我的问题。希望你能提供更多的答案:)
    • 我不认为还有什么要补充的。你希望我补充什么?
    • 基本上,我想知道使用 compareTo 方法时最后一个字符串应该是什么。?
    • 那是没有意义的。如果您计划支持超过 65535 的 Unicode 代码点,compareTo 将不起作用。见上文。
    • @Popokoko “最后一个字符串”必须无限长。
    【解决方案2】:

    它不代表有效的 Unicode 字符,但 char 的最大值,因此是“最后一个”字符,是 65535。

    char omega = '\uFFFF';
    

    【讨论】:

    • 这很有趣,你能解释一下为什么这是最后一个字符吗?
    【解决方案3】:

    你想要字符串的最后一个字符吗?如果是这样:

        s.charAt(s.length()-1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-28
      • 2022-08-08
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      相关资源
      最近更新 更多