0

次のようなメールの詳細を含む文字列があります

GitHub   Sat Jun 01 13:32:02 IST 2013
eBay   Mon Jun 03 17:37:40 IST 2013
YouTube   Tue Jun 04 00:18:50 IST 2013
YouTube   Sat Jun 08 01:20:47 IST 2013
eBay   Sat Jun 08 13:19:22 IST 2013
eBay   Sat Jun 08 13:17:53 IST 2013
eBay   Mon Jun 10 15:43:01 IST 2013
YouTube   Mon Jun 10 15:47:02 IST 2013
eBay   Wed Jun 12 11:10:15 IST 2013
eBay   Wed Jun 12 19:25:50 IST 2013
eBay   Thu Jun 13 17:22:14 IST 2013
eBay   Thu Jun 13 18:09:18 IST 2013
Clark University  Thu Jun 13 19:30:09 IST 2013

特定の人から受信したメールの数を取得できるように、eBay、Youtube、または何かが発生した回数を取得する方法はありますか??

4

3 に答える 3

0

データのグループ化で正規表現を使用してみてください。

于 2013-06-19T09:05:49.223 に答える
0

String tokenizer を使用して文字列を分割し、最初のトークンの値と一致させることができます。

eBay が常に最初の単語になる場合は、String クラスの startsWith() メソッドを使用できます。

于 2013-06-19T09:02:07.573 に答える
0

このソリューションでは、次の 2 つのことを想定しています。

  • 曜日の名前は最初の部分に表示できません。
  • 各エントリは改行で区切られています。

[リスト項目とコード抽出で SO バグを修正するための追加行]

private static final Set<String> DAYS = new HashSet<String>(Arrays.asList(
    "Mon ", "Tue ", "Wed ", "Thu ", "Fri ", "Sat ", "Sun "
));

public int nrMatches(final String mailList, final String sender)
{
    int ret = 0;
    int index;

    for (final String line: mailList.split("\r?\n"))
        for (final String day: DAYS) {
            index = line.indexOf(day);
            if (index == -1)
                continue;
            if (line.subString(0, index).trim().equals(sender))
                ret++;
        }

    return ret;
}
于 2013-06-19T09:12:35.833 に答える