2010-06-14 112 views
3

我想要獲取用戶輸入的字符串數組的最長方法,然後返回該數組中最長字符串的元素號。我已經達到了能夠以最長的字符串返回字符數量的程度,但我不相信這將適用於我所需要的。我的問題是,當我試圖解決這個問題時,我不斷遇到不兼容的類型錯誤。我不明白帶字符串的整個數據類型的東西。這讓我感到困惑,我如何去返回一些數組,但數組是字符串。主要方法很好,我卡在了????部分。返回數組中最長字符串的元素號

public static void main(String [] args) 
{ 
    Scanner inp = new Scanner(System.in); 
    String [] responseArr= new String[4]; 

    for (int i=0; i<4; i++) 
    { 
    System.out.println("Enter string "+(i+1)); 
    responseArr[i] = inp.nextLine(); 
    } 
    int highest=longestS(responseArr); 
} 

public static int longestS(String[] values) 
{  
    int largest=0 

    for(int i = 1; i < values.length; i++) 
    { 
     if (?????   ) 

    } 
    return largest; 
} 
+1

歡迎堆棧溢出!請編輯您的代碼以改進格式(標籤等) - 這會增加您獲得的(良好)答案的數量。 – Cam 2010-06-14 03:11:18

+4

當我是大學生時,除非代碼格式正確,否則工作人員「編程顧問」會拒絕**提供任何**幫助。海事組織,「我是新來的這個網站」也不是一個有效的藉口。 – 2010-06-14 03:15:55

+0

如果字符串數組是 {「this」,「list」,「same」,「size」,「four」}怎麼辦?你的方法應該返回哪個索引? – emory 2010-06-14 04:42:40

回答

3
for (int i = 0; i < values.length; i++) 
    { 
     if (values[i].length() > largest) 
     { 
      largest = values[i].length(); 
      index = i; 
     } 
    } 
    return index; 

注:初始化INT i與0 - 數組索引是0爲基礎的。

回到你main,你可以再做System.out.println("Longest: " + responseArr[highest]);

2

你將要存儲在您longestS方法兩件事情:最大長度,到目前爲止,最大長度的數組索引。另請注意,Java中的數組索引從0開始。用int i = 1初始化的for循環實際上是從第二個索引開始的。

3

以下是我會寫:

public static int findIndexOfLongestString(String[] values) 
{  
    int index = -1; 

    if ((values != null) && (values.length > 0)) 
    { 
     index = 0; 
     String longest = values[0]; 
     for (int i = 1; i < values.length; ++i) 
     { 
      if (values[i].length() > longest.length()) 
      { 
      longest = values[i]; 
      index = i; 
      } 
     } 
    } 

    return index; 
} 
+1

+1,但您可能想要修正索引的重新聲明。 – 2010-06-14 03:36:25

1

我的解決辦法:

public class JavaApplication3 
{ 
    public static void main(String[] args) 
    { 
     String[] big={"one","two","three"}; 
     String bigstring=null; 
     int maxlength=0; 
     for(String max:big) 
     { 
      if(maxlength<max.length()) 
      { 
       maxlength=max.length(); 
       bigstring=max; 
      } 
     } 
     System.out.println(bigstring); 
    } 
} 
+0

這不會返回數組中的索引。 – Starkey 2012-11-04 01:13:27

相關問題