gpt4 book ai didi

java - java中的String有长度限制吗?

转载 作者:行者123 更新时间:2023-12-01 08:08:09 25 4
gpt4 key购买 nike

这是我奇怪地发现的事情,那就是 String java中的长度超过一个值,则显示为奇数。

这是我的测试代码

public static void main(String[] args) {
int length = 4096;
char[] chars = new char[length];
for (char c : chars) {
c = 'c';
}
String str = new String(chars);
System.out.println(str.length());
System.out.println(str);
}

当我在计算机上运行上面的代码时,我从控制台得到 4096 个空格字符输出。

然后我把长度变量改成4095,这次输出是正确的,4095 c性格。

但在另一台计算机上,除非长度变量小于 2900,否则输出不正确。

我就是不明白为什么?

编辑

我想我知道发生了什么,我尝试在命令窗口中再次运行它,即使长度值足够大,它打印正确。

所以这似乎是 Eclipse 控制台的一些限制。

但是我检查了我的 Eclipse 控制台缓冲区大小,它是 800000

最佳答案

您仅更改局部变量 c 的值,而不更改 char[] 中条目的值。

要更改实际值,请使用“常规”for 循环,而不是 for-reach 循环:

for (int i = 0; i < chars.length; i++) {
chars[i] = 'c';
}
<小时/>

作为旁注,java 中的 String 不是 char[] - 它是 String对象。

关于java - java中的String有长度限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19722568/

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