有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java按字母顺序对字符串数组中的单个元素进行排序

我必须编写一个程序,从文件中读取字典单词列表。 随后,每个单词的字符按字母顺序排列并存储在原始数组中。(例如:蝙蝠侠将成为aabmnt)。 现在,以下是我到目前为止所做的:

public static String[] alphabeticalOrder(String[] s)
{
    //
    // Sort each individual string element by alphabetical order
    //
    for (int i = 0; i < s.length; i++)
    {
        String wordSt = s[i];
        char[] word = wordSt.toCharArray();
        Arrays.sort(word);
        s[i] = new String(word);
    }
    return s;
}

main中的调用只是:String[] alphaOrder = alphabeticalOrder(dictionary);

然而,每当我运行这个程序时,我都会得到一个NullPointerException,我似乎不知道为什么

s[i]更改为s[0]使我跳过了错误,但我需要转换字符串中的所有元素,而不仅仅是第一个元素

出什么事了


共 (1) 个答案

  1. # 1 楼答案

    正如Zavior所评论的,只有当字符串数组中有空元素时,才会发生这种情况

    将代码更改为:

    public static String[] alphabeticalOrder(String[] s)
    {
        //
        // Sort each individual string element by alphabetical order
        //
        for (int i = 0; i < s.length; i++)
        {
            String wordSt = s[i];
            if(wordSt == null) continue;
    
            char[] word = wordSt.toCharArray();
            Arrays.sort(word);
            s[i] = new String(word);
        }
        return s;
    }