[英]Array Index Out of Exception in Java
任何人都可以幫我修復我的代碼中的錯誤嗎? 我一直在努力嘗試並且找不到解決方案..我的大腦現在被烤了..
這是我的代碼:
public static String revio(String[] a){
int N = a.length;
String[] reverse = new String[N];
for (int i = 0; i < N ; i++) {
reverse[i] = a[N-i-1];
}
return reverse[N];
}
public static void main (String[] args)
{
String[] myArray = {"1", "2", "3"};
String arr = revio(myArray);
System.out.println(arr);
}
}
我知道我一直收到錯誤,因為我的數組在0到2的范圍內,它試圖訪問索引3,它不在0到2的范圍內。請給我一些建議!
你的循環沒問題,但是從方法返回的行是訪問無效索引(3)
reverse[N];
將其改為例如
reverse[N - 1];
它應該工作
您無法訪問array.length
的元素,因為Java array.length
索引從0
開始(而不是1
)。
int N = a.length;
String[] reverse = new String[N];
for (int i = 0; i < N ; i++) {
reverse[i] = a[N-i-1];
}
return reverse[N - 1]; // <-- the last element.
我認為你需要以下,使用Arrays.toString()
或StringBuilder
import java.util.Arrays;
public static String revio(String[] a){
int N = a.length;
String reverse = new String[N];
for (int i = 0; i < N ; i++) {
reverse[i] = a[N-i-1];
}
return Arrays.toString(reverse);
}
//using StringBuilder
public static String revio(String[] a){
int N = a.length;
StringBuilder reverse = new StringBuilder();
for (int i = 0; i < N ; i++) {
reverse.append(a[N-i-1]);
}
return reverse.toString();
}
public static void main (String[] args)
{
String[] myArray = {"1", "2", "3"};
String arr = revio(myArray);
System.out.println(arr);
}
return reverse[N];
是問題。 它應該是reverse[N-1];
如果你想返回整個反轉數組,你應該使用return reesrve;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.