0

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

+0

请提供预期的输出。 –

+0

哦!我忘了提及我在java工作... –

回答

3

迭代并向后计数数组,并且以这种方式遇到的每个新单词都是该单词在数组中的最后一个或唯一的实例。你可以把这些单词放在散列集中来检查你是否已经看过它们。每当你用这种方法检测到一个新单词时,你就可以从计数器中得到它后面的单词数量,或者通过计算array.length - currentPosition

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

希望帮助 问候

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} 
相关问题