2016-02-29 76 views
-1

編寫一個靜態方法方法調用longCount,它傳遞一個字符串數組,並返回數組中長度超過10個字符的字符串數(因此方法返回類型是int)。您必須在解決方案中使用for-each循環。需要hlelp for for each和數組java

這是我想出來的,雖然它在我提交時仍然沒有編譯。

public static int longCount(int[] data){ 
    int count = 0; 
    for(int n : data){ 
    if(data[n]>10) 
    count++; 
} 
    return count; 
} 
+0

'如果(數據[N]> 10)'你不'不想'數據[n]'在這裏,你想'n'。 'n'不是數組的索引,它是數組中的一個元素。 –

+6

你的方法應該接受'String []',而不是'int []'。 –

+0

如果使用'n'作爲循環的索引,'data [n]'就會工作。編輯:Derp,它不會拋出一個編譯錯誤,只是一個錯誤的結果(或如果n <0 ...指數超出了界限的異常)。 –

回答

3

變化

if(data[n]>10) 

if(n>10) 

for-each loop你得到(不是指數)。

+1

這可能是真的,但它不會導致*編譯*錯誤。 – radoh

7

您的方法應該接受String[]而不是int[]。這可能是導致編譯器錯誤的原因(但很難說,因爲您不報告錯誤消息。)此外,數組的循環變量將循環變量綁定到每個數組,而不是每個索引。我已經重寫你的方法爲:

public static int longCount(String[] data) { 
    int count = 0; 
    for (String s : data){ 
     if (s.length() > 10) { 
      count++; 
     } 
    } 
    return count; 
} 

爲了防止數組元素是null,你可能會考慮更改if條件

if (s != null && s.length() > 10) {