在提问之前,您需要进行谷歌搜索并查看其他地方,我们通常会处理有小问题或错误的修复代码。然而,由于人们现在可能会来看谷歌可以找到这个页面......
首先要读取文件,您需要一些 Streams - 使用数据进行输入/输出的东西。
File file = new File("C:\\MyFile.txt");
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
您将使用最后的那个来访问您的数据。如果文件包含多行,您将需要使用循环来获取它们:
while (dis.available() != 0) { // Tests for more lines
String s = dis.readLine(); // Get the line
现在,您使用 sushain97 向您展示的方法将这些行拆分为不同的字符串:
String[] sParts = s.split(" "); // Splits the strings into an array using the 'SPACE' as a reference
我们需要一个包含所有字母的整数数组。长度将是最长的字符串。
int longestLength = 1; // The longest length of word
for (String strx : sParts) { // Go through each sPart, the next one is called strx
if (longestLength < strx.length()) // If it's got a longer length than the current record
longestLength = strx.length(); // Set a new record
}
int[] counts = new int[longestLength + 1]; // Make the array with the length needed; +1 since arrays are 0-based
循环遍历所有字符串并将相应的数组编号加 1。
for(String str : strings)
counts[str.length()] += 1; // Add one to the number of words that length has
并输出它:
for(int i = 1; i < counts.length; i++) // We use this type of loop since we need the length
System.out.println(i + " letter words: " + counts[i]);
} // Close that while loop from before
以后,请按照我的建议去做,但我希望这对所有来这里获取信息的谷歌用户有所帮助。:)