gpt4 book ai didi

java - 在执行频率的以下代码中出错

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

大家好我想根据频率对文件的文本进行排序。我在运行时遇到内存不足错误。请尽快回复。

import java.io.*; 

import java.util.*;

import java.util.Collections;

class SortedInAlphaOrder

{

public static void main(String a[]) throws IOException{

Scanner input = new Scanner(System.in);

System.out.println("Enter the filename with path : " );

//String filename = input.next();

File f = new File("Ashish.txt");

BufferedReader br = new BufferedReader(new FileReader(f));

StringBuffer buffer = new StringBuffer();

String str =br.readLine();

while((str!= null)){

buffer.append(str);

buffer.append(" ");

}

ArrayList<String> list = new ArrayList<String>();


StringTokenizer st = new StringTokenizer(buffer.toString().toLowerCase());

while(st.hasMoreTokens()){

String s = st.nextToken();

list.add(s);

}

HashSet<String> set = new HashSet<String>(list);

List<String> arrayList = new ArrayList<String>(set);

Collections.sort(arrayList);

for(Object ob : arrayList){

System.out.println(ob.toString());

}

} }

获取错误 OutofMemoryHeap 错误。帮我解决。

最佳答案

我想我明白了你的问题。您将 str 分配给 br.readLine() 一个,但是您的 while 循环仅在 str == null 时停止。我假设第一个 br.readLine() 返回一个非空的 String,并且你继续检查它是否为 null你的 while 循环。结果,你的 wile 循环永远不会停止,你最终会得到一个 OutOfMemory 错误。相反,您应该像这样更改您的代码(未经测试)。

// ...other code
String str;
while((str = br.readLine()) != null){
buffer.append(str);
buffer.append(" ");
}
// ...other code

关于java - 在执行频率的以下代码中出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20887685/

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