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]是问题所在。它应该是return
reverse[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);
}