Java中的数组索引异常
有人能帮我修复代码中的错误吗? 我一直在努力,但找不到解决办法。。我的脑子现在被烤坏了 这是我的代码:Java中的数组索引异常,java,arrays,function,loops,Java,Arrays,Function,Loops,有人能帮我修复代码中的错误吗? 我一直在努力,但找不到解决办法。。我的脑子现在被烤坏了 这是我的代码: 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];
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);
}
}
publicstaticstringrevio(String[]a){
int N=a.长度;
字符串[]反向=新字符串[N];
对于(int i=0;i
我知道我一直在出错,因为我的数组在0到2的范围内,它试图访问不在0到2范围内的索引3。请给我一点建议
返回反向[N]代码>是问题所在。它应该是returnreverse[N-1]代码>
如果要返回整个反向数组,应使用returnreeserve代码>循环正常,但从方法返回的行正在访问无效索引(3)
将其更改为例如
reverse[N - 1];
它应该可以工作您不能访问array.length
处的元素,因为Java从0
开始索引(而不是1
)
int N=a.length;
字符串[]反向=新字符串[N];
对于(int i=0;i 返回反向[N-1];// 我认为您需要以下内容,请使用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);
}
导入java.util.array;
公共静态字符串修订(字符串[]a){
int N=a.长度;
字符串反向=新字符串[N];
对于(int i=0;i
我以前尝试过,但后来我从数组中只得到了一个值,即“1”。。你将如何修复它?我使用Jeliot检查错误,除了return语句之外,其他一切都很好/好。。这是一个赋值,我们应该使用“publicstaticstringrevio(String[]a)”我已经像你那样尝试过了:/。我一直得到的关于N-1的所有答案都是错误的。我以前也尝试过。我不想导入任何东西。这是不可接受的。@DerikDaro-使用StringBuilder查看我的更新答案这不起作用。我只得到一个值“1”“在我的结果中:/当你返回一个字符串时
你只会得到一个结果。你期待什么?如果需要整个数组,则需要更改返回类型,并返回数组reverse
。
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.
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);
}