字符串大小超过int的最大限制

时间:2012-11-05 12:35:46

标签: java string string-length

我有一大堆字符串,我想找到每个字符串的长度并添加它们并显示字符串的总长度。

要计算长度,我使用方法string.length(),但我注意到length()的数据类型是int,int的最大大小是2,147,483,647。但是我的字符串对象的字符数大于2,147,483,647。有什么建议如何在超出int limit时得到长度?

3 个答案:

答案 0 :(得分:5)

  

但是我的字符串对象的字符数大于2,147,483,647

我对此表示怀疑:String使用char[]来存储字符,而数组不能容纳超过Integer.MAX_VALUE个元素。另请参阅this post

如果您只需要添加多个字符串的长度,则可以使用长变量。

答案 1 :(得分:2)

你不能有比这更长的字符串。

Integer.MAX_VALUE是索引用于存储字符串对象的内部字符数组的上限,因此没有办法让字符串长于此值。

答案 2 :(得分:1)

在java中,没有字符串对象可以具有大于 Integer.MAX_VALUE的长度,因此string.length将适合您,但是如果您希望字符串集的总长度大于 Integer.MAX_VALUE,则可以使用长type变量,用于存储整个字符串集的长度值