我正在编写一个CSVParser程序,用逗号分隔单词。我目前正在尝试查找并记录文件中出现的最长单词。这是我的班级。
import csv.CSVParser;
import java.io.*;
import java.util.*;
public class RecordFormatter {
public static void main (String[] args) {
CSVParser parser = new CSVParser(new File (args[0]));
while (parser.hasNextLine()) {
ArrayList<String> ls = parser.getNextLine();
for (int i = 0; i<ls.size(); i++) {
System.out.print("|" + ls.get(i) + " ");
}
System.out.print("|");
System.out.println();
}
CSVParser parser1 = new CSVParser(new File (args[0]));
ArrayList<Integer> maxCol = new ArrayList<Integer>();
while (parser1.hasNextLine()) {
ArrayList<String> ls1 = parser1.getNextLine();
for (int i = 0; i<ls1.size(); i++) {
maxCol.add(ls1.get(i)); //Here is where my bug occurs.
}
}
}
}
我创建了两个CSVParsers,并尝试使用两个中的第二个来记录长度。我尝试(如上所述)将每个单词的int长度值存储到另一个Arraylist中,但我似乎无法让它工作。任何帮助将不胜感激。
答案 0 :(得分:1)
没有给出解决方案,因为这是家庭作业......
请注意,您保留每个长度值,而不是将当前长度与之前的值进行比较,以确定它是否更长,然后才保留它。
看起来你只需要一个maxLength Integer(或int)而不是一个列表,因为你只需要最长的单个单词。
如果你想要每行最长的单词,那么List可能是合适的。
另一种选择是使用SortedList并获取列表中的最大值(最后一个值)。