I'm sorry. I am new to Java. I'm trying to count the length of every word in a text file, but when I print the results, every element of the String array where I store the words by length contains a null, and I really don't understand it.
import java.awt.List;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Scanner;
import edu.duke.*;
public class WordLengths {
public static void main(String[] args) {
countWordLengths("/Users/lorenzodalberto/Downloads/ProgrammingBreakingCaesarData/smallHamlet.txt");
}
public static void countWordLengths(String fileName) {
ArrayList<String> myWords = new ArrayList<String>();
String[] wordInd = new String[20];
int[] counts= new int[20];
Scanner sc2 = null;
try {
sc2 = new Scanner(new File(fileName));
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
while (sc2.hasNextLine()) {
Scanner s2 = new Scanner(sc2.nextLine());
while (s2.hasNext()) {
String word = s2.next();
myWords.add(word);
}
}
System.out.println("all of my words " + myWords);
for (String word : myWords) {
word = word.toLowerCase();
int length = word.length();
wordInd[length] += " " + word + " ";
counts[length] += 1;
System.out.println(wordInd[length]);
}
for (int i = 1; i < counts.length; i++) {
int j = counts[i];
if (j > 0) {
System.out.println(j + "\t words of length " + i + " " + wordInd[i]);
}
}
}
}
and this is the output:
all of my words [Laer., My, necessaries, are, embark'd., Farewell., And,, sister,, as, the, winds, give, benefit] null laer. null my null necessaries null are null embark'd. null embark'd. farewell. null and, null sister, null my as null are the null laer. winds null and, give null sister, benefit 2 words of length 2 null my as 2 words of length 3 null are the 2 words of length 4 null and, give 2 words of length 5 null laer. winds 2 words of length 7 null sister, benefit 2 words of length 9 null embark'd. farewell. 1 words of length 11 null necessaries