Java:多字节字符串长度

jos*_*ana 6 java

我有一个方法可以为命令行程序打印"标题文本",就像Markdown的语法一样:

1. =======================
2. This is a header string
3. =======================
Run Code Online (Sandbox Code Playgroud)

此方法c对第1行和第3行采用char ,并n根据长度重复它s.

String.length() 使用英文字母可以正常工作,但是如何找到包含外部多字节字符(如"Å"和"Ç")的字符串的长度(即视觉长度)?

Ian*_*rts 10

String.length 对于那些类型的字符会很好,因为Java字符串在UTF-16中工作,这足以代表绝大多数常用字符(拉丁语,希腊语,阿拉伯语,希伯来语,中文,泰语,梵文......) .

如果您可能需要处理U + FFFF以上的字符,那么您需要使用codePointCount而不是length处理代理项对.