| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1194 人关注过本帖
标题:要用什么来储存一个非常非常大的字符串?用String来储存不够大啊~~请你们路 ...
只看楼主 加入收藏
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:5 
要用什么来储存一个非常非常大的字符串?用String来储存不够大啊~~请你们路过就来瞄瞄我吧~~感恩~
public class T9 {
    public static void main(String [] args){
        Scanner in=new Scanner(System.in);
int n=in.nextInt()-1;
        String [] a={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
        String [] A=new String[26];
        A[0]=a[0];
        for (int i = 1; i <A.length; i++) {//就是这里出了问题导致运行不了如果将A。length改小一点就可以运行
            A[i]=A[i-1]+a[i]+A[i-1];
        }
        System.out.println(A[n]);
        
    }
}
运行之后显示
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2367)
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
    at java.lang.StringBuilder.append(StringBuilder.java:132)
    at T9.main(T9.java:119)
搜索更多相关主题的帖子: public 字符串 
2014-12-13 16:38
编号1016
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:46
专家分:188
注 册:2014-5-8
收藏
得分:7 
你这里好像有错,循环那里有错,改成这个i=0或者i<=A.length看还会不会报错

相互学习,让自己变得更强大!
2014-12-13 21:12
说123454321
Rank: 2
等 级:论坛游民
帖 子:17
专家分:46
注 册:2013-6-22
收藏
得分:7 
StringBuffer或StringBuilder,可以存储大文本
2014-12-13 23:32
我爱敲代码
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:70
专家分:165
注 册:2013-4-23
收藏
得分:7 
LZ你的代码有问题啊  for (int i = 1; i <A.length; i++) {
            A[i]=A[i-1]+a[i]+A[i-1];
        }
当你的i=25的时候, A[i]里面存的字符串长度是2^25-1,你想想看内存能不溢出吗?
2014-12-14 00:16
llt2013
Rank: 2
等 级:论坛游民
帖 子:15
专家分:20
注 册:2013-12-28
收藏
得分:0 
回复 2楼 编号1016
因为我A【0】已经给定了,所以我只要再输入25位就好了,然后A。length=26,从i=1开始就刚好25位啦
2014-12-14 01:07
C_fans
Rank: 2
等 级:论坛游民
帖 子:8
专家分:14
注 册:2014-12-23
收藏
得分:0 
我真是服了你了,用字符串数组还一个一个字母赋值,你就不能用String a="kjdgfjdkshlgshgdls(写在这)";然后再用charAt(i)打出来啊?
2014-12-23 10:00
快速回复:要用什么来储存一个非常非常大的字符串?用String来储存不够大啊~~请你 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016274 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved