我正在尝试从字符串数组中找到最短的单词,但是我使用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;在开始时使用特殊字符,它什么都不返回。
答案 0 :(得分:2)
回答你的评论:当你在开头有空格时,split
将在开头有一个元素,一个空字符串。那个是数组中最短的元素(检查数组的长度),但是打印它会显示出任何可见的内容。但是,请放心,打印正确的元素:它是""
您可能希望在trim
操作
split
使用您的字符串