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

Java 计算字符串数组中每个单词最后一次出现后的单词数,java,text-processing,last-occurrence,word-count,arrayofstring,Java,Text Processing,Last Occurrence,Word Count,Arrayofstring,我正在写课文。我想查找字符串数组中某个特定单词最后一次出现后的单词数。例如, 字符串[]数组={cat,rat,cat,bat,cat,cat,bat,fat,mat} 我想找出这个数组中每个单词的最后一次出现,以及最后一次出现后的单词数。 我该怎么做呢?迭代并向后计算数组,这样遇到的每个新词都是数组中该词的最后一个或唯一实例。也就是说,你可以把单词放在一个散列集中,以检查你是否已经看到它们。无论何时以这种方式检测新词,您都可以从计数器或通过计算array.length-currentPosit

我正在写课文。我想查找字符串数组中某个特定单词最后一次出现后的单词数。例如, 字符串[]数组={cat,rat,cat,bat,cat,cat,bat,fat,mat} 我想找出这个数组中每个单词的最后一次出现,以及最后一次出现后的单词数。
我该怎么做呢?

迭代并向后计算数组,这样遇到的每个新词都是数组中该词的最后一个或唯一实例。也就是说,你可以把单词放在一个散列集中,以检查你是否已经看到它们。无论何时以这种方式检测新词,您都可以从计数器或通过计算
array.length-currentPosition
迭代并向后计数数组来获得其背后的单词数,并且以这种方式遇到的每个新词都是数组中该单词的最后一个或唯一实例。也就是说,你可以把单词放在一个散列集中,以检查你是否已经看到它们。无论何时以这种方式检测新词,您都可以从计数器或通过计算
array.length-currentPosition

获得其背后的字数。如果您使用字符串,则有一个解决方案

要在数组中搜索,以下是一个简短的示例:

    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));
    }
}
使用系统;
班级计划
{
静态void Main()
{
//
//使用此字符串引用数组。
//
字符串[]数组1={“猫”、“狗”、“胡萝卜”、“鸟”};
//
//查找以子字符串开头的第一个元素。
//
字符串值1=Array.Find(array1,
element=>element.StartsWith(“car”,StringComparison.Ordinal));
//
//查找长度为三个字符的第一个元素。
//
字符串值2=Array.Find(array1,
元素=>element.Length==3);
//
//查找长度不超过四个字母的所有元素。
//
字符串[]array2=Array.FindAll(array1,
element=>element.Length如果要处理字符串,则有一个解决方案

要在数组中搜索,以下是一个简短的示例:

    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));
    }
}
使用系统;
班级计划
{
静态void Main()
{
//
//使用此字符串引用数组。
//
字符串[]数组1={“猫”、“狗”、“胡萝卜”、“鸟”};
//
//查找以子字符串开头的第一个元素。
//
字符串值1=Array.Find(array1,
element=>element.StartsWith(“car”,StringComparison.Ordinal));
//
//查找长度为三个字符的第一个元素。
//
字符串值2=Array.Find(array1,
元素=>element.Length==3);
//
//查找长度不超过四个字母的所有元素。
//
字符串[]array2=Array.FindAll(array1,
element=>element.Length在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}
在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}

请提供预期的输出。哦!我忘了提到我在用java工作…请提供预期的输出。哦!我忘了提到我在用java工作。。。