问题是,我试图这么做,但我检查字符串长度的方法不起作用;我能做些什么来修复它?
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;
}
}
我认为不应该有数组。长度()
否则您将得到ArrayIndexOutOfBoundException
,因为我们不能对字符串数组使用length(),而是可以对特定的字符串长度使用length()。
在这里1.使用j
你比较了
AnimalNames[j 1]
?-
并且你在第一个if条件
中返回(AnimalNames[j]);
-
好的,让我说清楚。在数组中找到最长的字符串。在数组上循环,然后比较两个附近的元素,然后返回较大的元素。使用你的代码,它将返回兔子。正当
你可能对流程感到困惑。有一个简单的方法。
您为第一个数组元素的长度分配了一个变量:elementL长=数组[0]。长度;和一个跟踪索引的值
- 您循环遍历数组您用这个变量检查每个元素,如果更大,则重新分配元素值并更新索引。
- 循环结束。你有最大的长度和索引
代码:
int index = 0;
int elementLength = array[0].length();
for(int i=1; i< array.length(); i++) {
if(array[i].length() > elementLength) {
index = i; elementLength = array[i].length();
}
}
return array[index];
就是这样。
使用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();
好吧。。实际上是两行:——)享受吧!
更新:
strings.stream()可以直接使用Stream.of(动物)
问题内容: 在字符串数组中找到最长的字符串有一种简便的方法吗? 像什么? 问题答案: var longest = arr.sort(function (a, b) { return b.length - a.length; })[0]; 可能更有效,但仅自Javascript 1.8 / ECMAScript5起可用,并且在较旧的浏览器中默认不可用:
问题内容: 这个问题与Python类似-在字典中查找最长(最多单词)键-但我需要纯字符数。 输入示例: 输出: 问题答案: 替代方法,与@jamylak的解决方案一样快,并且使用更多的pythonic: 查看比较:
我有一个tweet数据库,其中实际的tweet文本在一个名为“text”的字段中。 我想知道如何查询并显示最长的tweet?我一直在想也许.排序或.长度或诸如此类的东西,但我环顾四周,到目前为止还没有找到任何有用的东西。 救命啊!谢谢!
我如何在O(N**2)个时间内完成它?
http://articles.leetcode.com/2011/11/lengton-palindromic-substring-part-i.html 我处理这个问题的领域是用java编写代码,使用简单的强力解决方案,然后使用o(n2)方法,没有额外的空间,就像现在这样。http://www.geeksforgeeks.org/lengte-palindromic-substring-set
问题内容: 我在以下几行中遇到问题,其中未初始化的数组/没有元素。 有什么可能的解决方案? 问题答案: 由于尚未初始化,因此没有长度,其值为。但是,编译器甚至不允许您按 原样 编译该代码,从而引发以下错误: 变量car可能尚未初始化 。 您需要先对其进行初始化,然后才能使用: 如果需要初始化一个空数组,可以使用以下命令: 如果需要使用特定的大小初始化它,以便填充某些位置,可以使用以下命令: 但是,