查找字符串数组中的最短单词

时间:2018-03-02 15:00:29

标签: java

我正在尝试从字符串数组中找到最短的单词,但是我使用reg ex删除特殊字符和代码

public String[] setWordArray(String stringToBeAnaylsedForFrequency) {
        stringToBeAnaylsedForFrequency = stringToBeAnaylsedForFrequency.replaceAll("\\d+", " ");
        stringToBeAnaylsedForFrequency = stringToBeAnaylsedForFrequency.replaceAll("\\W", " ");
        stringToBeAnaylsedForFrequency = stringToBeAnaylsedForFrequency.replaceAll("( )+ ", " ");
        String[] wordArray = stringToBeAnaylsedForFrequency.split(" ");
        return wordArray;
}

这是使用方法

public String getShortestWordInStringGiven() {
        int wordArrayLength = getStringArrayForGivenString().length;
        String shortestWordInGivenString = getStringArrayForGivenString()[0];
        for (int i = 1; i < wordArrayLength ; i++) {
            if (getStringArrayForGivenString()[i].length() < shortestWordInGivenString.length()) {
                shortestWordInGivenString = getStringArrayForGivenString()[i];
            }
        }
        return shortestWordInGivenString;
    }

当它工作正常我输入文字就像你好,它会让你回到最短的角色,但当我输入&#34;你好你&#34;在开始时使用特殊字符,它什么都不返回。

1 个答案:

答案 0 :(得分:2)

回答你的评论:当你在开头有空格时,split将在开头有一个元素,一个空字符串。那个是数组中最短的元素(检查数组的长度),但是打印它会显示出任何可见的内容。但是,请放心,打印正确的元素:它是""

您可能希望在trim操作

之前split使用您的字符串