gpt4 book ai didi

java - 在 Java 中格式化字符串关于它的长度(以字节为单位)

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:32:41 27 4
gpt4 key购买 nike

假设我在 Java 中有一个包含非 ASCII 字符的字符串,我想使用 String.format() 来设置它,这样格式化的字符串将具有与字符串字节长度相关的最小宽度.

String s = "æøå";
String.format(l, "%" + 10 + "s" , s);

这将产生一个包含 7 个前导空格的字符串。

但我想要的是应该只有 4 个前导空格,因为原始字符串的大小为 6 个字节。

这似乎是一个普遍的需求,所以我想问一下是否有任何已经构建的类可以实现这一点,或者我应该自己去实现Formattable接口(interface)吗?

最佳答案

一个字符串没有多个字节 - 它有多个字符。表示字符串所需的字节数 取决于您使用的编码。我不知道有什么内置的东西可以在填充方面做你想做的事(我不认为它是一个常见的要求)。你可以问一个CharsetEncoder对于每个字符的最大平均 字节数,但我没有看到任何方法来获取特定字符串的字节数而基本上 编码:

Charset cs = Charset.forName("UTF-8");
ByteBuffer buffer = cs.encode("foobar");
int lengthInBytes = buffer.remaining();

如果你要对字符串进行编码无论如何,你可能只想执行编码,计算出需要多少填充,然后写出编码的填充,然后写出已经-编码文本。这实际上取决于您对数据的处理方式。

关于java - 在 Java 中格式化字符串关于它的长度(以字节为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8132700/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com