代码之家  ›  专栏  ›  技术社区  ›  menteith

如何使用substring()获取重音字母?

  •  0
  • menteith  · 技术社区  · 1 年前

    我有以下字符串: ąbc 。我想要它的第一个字符,即。 Ä 。当我使用时,请使用以下代码 "ąbc".substring(0,1) 我使用得到正确的结果 jshell 。但是,在使用时 IntelliJ ,我明白 a 而不是 。怎么了?

    enter image description here

    以下单元测试工作正常(在IntelliJ和Maven中):

        @Test
        void test() {
            // GIVEN
            String string = "ąbc";
    
            // WHEN
            final String substring = string.substring(0, 1);
    
            // THEN
            assertThat(substring).isEqualTo("ą");
        }
    
    1 回复  |  直到 1 年前
        1
  •  2
  •   Basil Bourque    1 年前

    这可能是IDE控制台没有正确配置为的问题 character encoding

    无论可见字符是什么,您都可以通过打印字符的十六进制值来确认它是正确的字符:

          System.out.println(String.format("%04x", (int) "ąbc".charAt(0)));
    

    结果应该是 0105 为那个角色。

    要显示正确的字符,您可能需要更改 Intellij's theme 或配置。