计算字符串数组中每个字最后一次出现后的字数

时间:2011-09-27 22:45:55

标签: java text-processing last-occurrence word-count arrayofstring

我正在处理文字。我想找到字符串数组中最后一次出现特定单词后的单词数。例如, String [] array = {cat,rat,cat,bat,cat,cat,bat,fat,mat} 我想找到这个数组中每个单词的最后一次出现以及最后一次出现后的单词数。 我该怎么办?

3 个答案:

答案 0 :(得分:3)

向后迭代并计算数组,以这种方式遇到的每个新单词都是数组中该单词的最后一个或唯一的实例。您可以将单词放在哈希集中以检查您是否已经看过它们。每当您通过这种方式检测到新单词时,您可以从计数器或计算array.length - currentPosition获得其后面的单词数。

答案 1 :(得分:0)

如果您使用字符串,则会有RegEx in DotNet的解决方案。

要在数组中搜索,这是一个简短的例子:

    using System;

class Program
{
    static void Main()
    {
    //
    // Use this array of string references.
    //
    string[] array1 = { "cat", "dog", "carrot", "bird" };
    //
    // Find first element starting with substring.
    //
    string value1 = Array.Find(array1,
        element => element.StartsWith("car", StringComparison.Ordinal));
    //
    // Find first element of three characters length.
    //
    string value2 = Array.Find(array1,
        element => element.Length == 3);
    //
    // Find all elements not greater than four letters long.
    //
    string[] array2 = Array.FindAll(array1,
        element => element.Length <= 4);

    Console.WriteLine(value1);
    Console.WriteLine(value2);
    Console.WriteLine(string.Join(",", array2));
    }
}

您也可以查看MSDN Example

希望有所帮助 此致

答案 2 :(得分:0)

在Ruby中:

arr = [:cat,:rat,:cat,:bat,:cat,:cat,:bat,:fat,:mat]
hash = {}
arr.reverse.each_with_index {|item, index| hash[item]=index unless hash.has_key?(item)}
hash
=> {:mat=>0, :fat=>1, :bat=>2, :cat=>3, :rat=>7}