查找ArrayList中字符串的长度

时间:2011-09-13 19:21:20

标签: java

我正在编写一个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中,但我似乎无法让它工作。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

没有给出解决方案,因为这是家庭作业......

请注意,您保留每个长度值,而不是将当前长度与之前的值进行比较,以确定它是否更长,然后才保留它。

看起来你只需要一个maxLength Integer(或int)而不是一个列表,因为你只需要最长的单个单词。

如果你想要每行最长的单词,那么List可能是合适的。

另一种选择是使用SortedList并获取列表中的最大值(最后一个值)。