2014-12-11 78 views
0

我的一部分任務是創建一個charAt()方法,該方法將返回指定索引處的char值。如果索引無效,它將返回索引爲零的字符。創建charAt()方法

這是我到目前爲止,請記住,我的任務明確指出我不能使用Java的現有字符串方法。

public char charAt(int index) { 
    char a; 
    if (index < 0 || index > 25) 
     a = list[0]; 
    else 
     a = list[index]; 
    return a; 
} 

我不斷收到一個錯誤NullPointerException每當我去調用該方法charAt。是否有任何更正或指示,你推薦?或者這個問題太模糊了?

+3

哪裏有你定義的列表?很可能它是空的。 – 2014-12-11 00:22:42

+0

您可以考慮查看有關創意的Java庫方法。當然,不要複製它,但它應該提供一些洞察力並讓你接觸圖書館。 – IdusOrtus 2014-12-11 00:26:57

+0

nullPointerException應該爲您提供確切的行號。 25號的數字又來自哪裏?這是最大尺寸嗎?如果list []數組小於25會怎麼樣?什麼是列表[]尚未分配? – stackoverflowuser2010 2014-12-11 00:30:30

回答

0

你應該考慮到你正在使用,而不是使用「幻數」爲您邊界檢查的實際數據:如果您

if (list.length == 0) { 
    //error, no data 
} 
char back = list[0]; 
if (index >= 0 && index < data.length) { 
    back = list[index]; 
} 
return back; 

在另一方面,作爲Juned在評論中指出,有空值並嘗試解除引用(通過.[]),您將得到一個NullPointerException

所以一些可能的原因是:

  • list是空
  • 你調用charAt的對象爲null,例如myData爲空myData.charAt(42)