我试图从字符串数组中找到最短的单词,但我使用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;
}
当它工作正常我输入文字就像你好你,它将返回你作为最短的字符,但当我在开始时输入“你好你”与一个特殊字符,它什么都不返回。
回答你的意见:当你在开头有空格时,split
将在开头有一个元素,一个空字符串。那个是数组中最短的元素(检查数组的长度),但是打印它会显示出任何可见的内容。但是,请放心,打印正确的元素:它是""
你可能想在trim
操作之前split
你的字符串