gpt4 book ai didi

java - 我正在尝试解析一个文本文件以计算唯一字符串的数量并打印有关这些字符串的一些信息

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

因此,我正在编写一个程序,该程序读取文本文件(在本例中为“votes.txt”)并返回字符串的数量,并对它们从最常见到最不常见进行排名。因此,使用 votes.txt,输出应打印控制台,如下所示:

1. Trump = 7
2. Hillary = 7
3. Bernie = 6
4. Jeb! = 5
5. Putin = 3
6. Colbert = 1
7. Stein = 1

我收到的错误如下:

Error:(26, 29) java: non-static variable this cannot be referenced from a static context
Error:(21, 28) java: non-static variable this cannot be referenced from a static context

这是代码:

import java.io.FileNotFoundException;
import java.io.File;
import java.util.*;

public class Profile {

public static void main(String[] args) throws FileNotFoundException {
File file = new File("votes.txt");
Scanner inFile = new Scanner(file);
HashMap<String, Integer> map = new HashMap<>();
String input = inFile.next();

while(inFile.hasNext());{
if(!map.containsKey(input)){
map.put(input, 1);
}
else{
map.put(input, map.get(input) + 1);
}
}
Record[] records = new Record(map.size());
Iterator<String> iterator = map.keySet().iterator();
int index = 0;
while(iterator.hasNext()){
String key = iterator.next();
Record record = new Record(key, map.get(key));
records[index] = record;
index++;
}
Arrays.sort(records, Collections.reverseOrder());
for(int i = 0; i < 5; i++){
System.out.println(records[i]);
}
}
class Record implements Comparable<Record>{
String key;
int count;
public Record(String key, int count){
this.key = key;
this.count = count;
}
public int compareTo(Record other){
if(this.count < other.count){
return -1;
}
else if (this.count > other.count){
return 1;
}
else{
return 0;
}
}
public String toString(){
return "(" + key + ", " + count + ")";
}
}

}

这是 votes.txt:

Bernie Trump Bernie Bernie
Trump Trump Hillary

Jeb!

Hillary Trump Bernie Hillary
Bernie
Putin Putin Putin
Hillary
Bernie
Hillary Hillary Hillary Trump


Colbert

Jeb! Jeb!
Trump

Johnson
Stein
Jeb! Jeb!

欢迎任何及所有解决方案。感谢您的阅读!

最佳答案

如果您点击评论中的链接,您将看到您的 Record 类Profile 的内部类,因此您无法从 访问它静态上下文,因为它是非静态。解决此问题的最佳方法是将 class Record 移到 class Profile 之外。

编辑:根据 David Conrad 在评论中所说的,您可以使该类静态并将其保留为内部类,但我不建议这样做。我不会提及它,因为我不建议这样做,但大卫是对的,为了完整起见,应该提及它

关于java - 我正在尝试解析一个文本文件以计算唯一字符串的数量并打印有关这些字符串的一些信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59313883/

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