当退出方法时,Java数组丢失。

7

我对Java相对较新,指针无法传递引用让我有点困惑。我写了一个函数来处理作业,需要返回用户输入的长度,并将该输入分配到传入的数组中,但当方法退出时,用户输入的数组丢失了,这是什么问题?

public static int readArray(char[] intoArray)
    {
        char[] capture = captureInputAsCharArray(); //User input comes back as char[]
        System.arraycopy(intoArray,0, capture, 0, capture.length);

        return capture.length;
    }

public static main(String[] args)
{
        size = readArray(arrItem7);  // item 7
        System.out.println(size);
        printOneInLine(arrItem7);  // prints individual elements of array
}

1
你在哪里声明 arrItem7? - lc2817
请查看此帖子以了解Java如何传递对象:https://dev59.com/h2sz5IYBdhLWcg3wcnZb#7893495 - Eng.Fouad
3
他已经通过了它们,只是在arraycopy中把它们弄反了。 - Brian Roach
这是一小段代码,声明已经被假定。 - awiebe
3个回答

9

0

要做你想做的事情(获取用户输入并返回其大小),你可以这样做:

import java.util.*;


class Main{
  public static void main(String argv[])
  {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter something");
    String line = sc.nextLine();
    char [] my_array = line.toCharArray();
    System.out.println("You entered an input of length "+line.length());
  }

}

它将会给出这个:

$ java Main 
Enter something
Hello
You entered an input of length 5

-1

引用本身是按值传递的。在这种情况下,你应该返回数组本身 (capture) 而不是长度。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接