java - 将以字母开头的数组列表中的单词索引存储到一个数组中,该数组可以存储每个字母的索引

标签 java arrays string arraylist

我有一个 ArrayList,其中包含一些按字母顺序排序的唯一字符串。

我想将字符串的索引存储在列表中,该索引以数组中的字符开头,该数组有 27 个对应于每个字母字符的插槽,还有一个额外的插槽用于其他字符。

例如。

1 次击倒
13天
之后
之间
公司
家庭

首页
重要
直播
地段
意思是
可能
全国
下一个
超过
一样

所以
仍然
谈话
虽然
也是
扎克斯

因此,当我迭代这个列表时,如果我找到一个以 char 'a' 开头的单词,它应该将该单词在列表中的索引放入我的数组 [0] 中。像这样,如果我找到一个以 char 'b' 开头的单词,它应该将该单词在列表中的索引放入我的数组 [1] 中,依此类推,直到数组 [25] 中的 char 'z' ,如果它以任何其他字符开头,它应该将该字符的索引放入数组 [26] 中。

如果在列表中找不到以特定字符开头的单词,则使用最后找到的字符的索引。

所以在完成逻辑之后,

数组[0] = 2//A
数组[1] = 3//B
数组[2] = 4//C
array[3] = 4//D,列表中没有 D 的单词,因此采用 'c' 的索引
array[4] = 4//E,列表中没有 E 的单词,因此采用 'c' 的索引
数组[5] = 6//F
array[6] = 6//G,列表中没有 D 的单词,因此采用 'f' 的索引
.
.
.
array[24] = 最后找到的单词的索引,即。 't'
数组[25] = 23//Z
array[26] = 1//数字字符

我的逻辑是

public static int [] calculateIndexForAlphabets(List libList)
{
    int[] array = new int[27];
    for (int x = libList.size() - 1; x >= 0; x--)
    {
        Item lmi = (Item) libList.get(x);

        String name = lmi.getName(); //my method to return the name
        if (name != null)
        {
            // Not sure what to do inside  
            // thinking of something like taking the name.toLowerCase().charAt(0) and using that
        }
    }
    return array;
}  

请提供一些对此的见解。

谢谢,

最佳答案

你走在正确的道路上。获得第一个字符后,检查它是否在 'a''z' 之间,如果是,则从中减去 'a' 以查找索引。如果不是,则索引为 26。

最后,通过迭代结果来填充缺失的索引。

关于java - 将以字母开头的数组列表中的单词索引存储到一个数组中,该数组可以存储每个字母的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21074214/

相关文章:

php - 通过键访问数组的值

java - UI 和非 UI 线程的多线程

javascript - 使用 javascript .filter() 删除重复的对象

java - 二叉搜索树差异键之和

java - 如何在Java中制作动态二维数组?

java - 一个字符串中有相同的字符

c# - 使用字符串格式化与字符串连接相比有什么好处吗?

c++ - 如何使用正则表达式删除 std::wstring 中特定短语的所有实例?

java - GWT 2.7 启动 jetty 6?

java - 如何添加到具有外键的数据库