问题是我尝试这样做,但我检查字符串长度的方法不起作用;我能做什么来修复它?
public static void main(String[] args) {
String[] animalNames = {"cat", "rabbit", "horse", "goat", "rooster", "ooooooooooooooo"};
String a= getLongestString(animalNames);
System.out.println(a);
}
public static String getLongestString(String []animalNames) {
// String animalNames[] = {"cat","chicken","horse","ooooooooo" };
int j = 0;
for (j = 0; j <= animalNames.length; j++) {
if (animalNames[j].length() > animalNames[j + 1].length()) {
return (animalNames[j]);
}
}
return null;
}
}
使用 java 8+ 非常简单(只需检查您的数组不为空或处理.get()
特别):
List<String> strings = Arrays.asList(animals);
String longest = strings.stream().
max(Comparator.comparingInt(String::length)).get();
int max = longest.length();
或者,如果您只需要长度:
int max = strings.stream().map(String::length).max(Integer::compareTo).get();
或者,如果你更喜欢单行,那就是:
String longest = Arrays.asList(animals)
.strings.stream().max(Comparator.comparingInt(String::length)).get();
=AND=
int max = Arrays.asList(animals)
.stream().map(String::length).max(Integer::compareTo).get();
好吧,好吧..实际上是两行:-) 享受吧!
UPDATE:
代替 Arrays.asList(animals).strings.stream()
可以直接使用Stream.of(animals)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)