ログ ファイルを読み取り、特定の文字列が表示された回数をカウントするプログラムを作成しています。文字列をキーワードとして手動で入力しようとしていましたが、非常に多いため、ログ ファイルを検索した方がよいと判断し、「ua」に遭遇すると、「ua」から「ua」への新しい文字列を作成する必要があります。行の終わり、それをハッシュマップに追加し、その特定の文字列の数を増やします(私が興味を持っているすべての文字列は「ua、」で始まります)。新しい文字列をハッシュマップに追加する方法がわかりません。これは私がこれまでに持っているものです。
public class Logs
{
public static void main(String args[]) throws IOException
{
Map<String, Integer> dayCount = new HashMap<String, Integer>();
for (String str : KeyWords)
{
dayCount.put(str, 0);
}
File path = new File("C:\\P4logs");
for(File f: path.listFiles())
{ // this loops through all the files + directories
if(f.isFile())
{ // checks if it is a file, not a directory.
try (BufferedReader br = new BufferedReader(new FileReader(f.getAbsolutePath())))
{
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null)
{
boolean found = false;
for (String str : DayCount.keySet())
{
if (sCurrentLine.indexOf(str) != -1)
{
DayCount.put(str, DayCount.get(str) + 1);
found = true;
break;
}
}
if (!found && sCurrentLine.indexOf("ua, ") != -1)
{
System.out.println("Found an unknown user action: " + sCurrentLine);
DayCount.put(key, value) //not sure what to put here
}
}
}
for(String str : KeyWords)
{
System.out.println(str + " = " + DayCount.get(str));
}
}
}
}
}