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

问题描述 投票:0回答:1

我试图从字符串数组中找到最短的单词,但我使用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;
    }

当它工作正常我输入文字就像你好你,它将返回你作为最短的字符,但当我在开始时输入“你好你”与一个特殊字符,它什么都不返回。

java
1个回答
2
投票

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

你可能想在trim操作之前split你的字符串

© www.soinside.com 2019 - 2024. All rights reserved.