查找字符串数组中最长的字符串

这个问题是我试图这样做,但我检查字符串长度的方法不起作用; 我该怎么办才能修好它?

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[j + 1].length()) { return (animalNames[j]); } } return null; } } 

这里。 1.你使用j<= animalNames.length;

  1. 你比较animalNames[j + 1] ? - >错误索引超出数组

  2. 并且你在第一个if条件return (animalNames[j]); - >错误的价值

好的,让我说清楚。 您可以在数组中找到最长的字符串。 循环遍历数组,然后比较2个近元素,然后返回更大的元素。 使用您的代码,它将返回兔子。 对?

可能是您对流程流程感到困惑。 有一个简单的方法。

  1. 为第一个数组元素的长度分配一个变量:elementLength = array [0] .length; 和一个跟踪索引的值
  2. 循环遍历数组使用此变量检查每个元素,如果更大,则重新分配元素值并更新索引。
  3. 循环结束。 你有最大的长度和指数

码:

 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]; 

这就对了。

 public class LongestWord { public static void main(String []args) { System.out.println("Please enter the string for finding longest word"); Scanner sc1 = new Scanner(System.in); String str = sc1.nextLine(), x=null; String str2[] = str.split(" "); x=str2[0]; int i =0,j = 0; for( i = 0; i < str2.length; i = j) { for( j =i+1; j < str2.length; j++) { if(x.length() < str2[j].length()) { x = str2[j]; break; } } } System.out.println("the longest string is: " + x + " and it's length is: " + x.length()); } } 

我认为不应该有array.length(); 否则你将得到ArrayIndexOutOfBoundException因为我们不能使用length()作为字符串数组,而是我们可以使用特定的字符串长度。

 public class Main { public static void main(String[] args) { String [] names = {"Greg", "Aleksandra", "Martha", "Oliwka"}; String wynik = findLongestName(names); System.out.println( wynik); } public static String findLongestName(String [] names){ int size = names.length; String longestName = names[0]; for(int i = 0; i <= 3; i++){ if(names[i].length() > longestName.length()){ longestName = names[i]; }} return longestName; } }