gpt4 book ai didi

java - 来自未完全填充的字符数组的字符串

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

显然,下面的代码给出了一个相当奇怪的结果。

char[] data = new char[5];
data[0] = 'a';
data[1] = 'b';
data[2] = 'c';

out.println("'" + new String(data) + "'");

'abc□□'

有没有办法从字符数组创建一个字符串,考虑到整个数组可能不会用字符填充到末尾?


问题原因:使用 Reader.read(char[]) 时方法你给它一个字符数组来填充,我只能假设它不会被完全填充,除非你很幸运,当你到达流的末尾时。所以想知道如何将其转换为可以附加到 StringBuffer 的字符串。现在意识到 read 方法实际上返回读取的字节数,我认为它可以与 StringBuffer.append(char[], int, int),这使我的问题没有实际意义。但是,仍然是我很好奇的东西,而不是我通过谷歌搜索设法找到的东西,所以我想这个问题在这里得到答案是很好的 ;)

最佳答案

String 有构造函数 String(char[] value, int offset, int count)接受 char 加上长度(和偏移量)的数组:

String s = new String(data, 0, 3);

假设 data 中没有嵌入的空字符(其中前导空字符被认为是嵌入的空字符),解决方案将需要找到第一个空字符以确定 char 的数量data 中:

int length = 0;
while (length < data.length && 0 != data[length]) length++;
String s = new String(data, 0, length);

关于java - 来自未完全填充的字符数组的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12746143/

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