返回的数组得到'找不到符号'错误

时间:2016-11-17 20:15:58

标签: java arrays methods

我一直收到"cannot find symbol"错误。它说它无法在identifier.toStringSystem.out.println(identifier)中找到“标识符”。是否有任何关于它为什么找不到我返回的字符串数组的想法?

import java.io.*;
import java.util.*;
//recive data from user, Display data, Store Date to file, retrieve data from file
public class Library
{
    public static String [] ident()
    {

        Scanner inputFile1 = new Scanner("Identifiers");
        Scanner inputFile2 = new Scanner("Titles");
        Scanner inputFile3 = new Scanner("Descriptions");


        String[] identifier = new String[405];
        for (int i = 0; i < 406; i++)
        {
            identifier[i] = inputFile1.nextLine();
        }

        String[] title = new String[405];
        for (int i = 0; i < 406; i++)
        {
            title[i] = inputFile2.nextLine();
        }

        String[] description = new String[405];
        for (int i = 0; i < 406; i++)
        {
            description[i] = inputFile3.nextLine();
        }
    return identifier;
    }

    public static void main(String args)
    {
        Library.ident();
        identifier.toString();
        System.out.println(identifier);
    }
}

3 个答案:

答案 0 :(得分:0)

您需要将返回值存储在变量

public static void main(String args)
{
    String[] identifier = Library.ident();
    identifier.toString();
    System.out.println(identifier);
}

答案 1 :(得分:0)

您的代码中存在两个问题。

  • 首先:ident方法返回一个值(identifier),并且您没有在main方法中使用此值。相反,您尝试直接访问变量identifier,但它仅在ident方法中可见/可访问。对此的解决方案是:

    String[] identifier = Library.ident(); identifier.toString();

  • 第二个问题:在我看来,for循环会造成一些麻烦。如您所见,该阵列使用405个元素进行初始化。如果要迭代所有这些,则从0到404而不是406。

    String[] identifier = new String[405]; for (int i = 0; i < 406; i++)

答案 2 :(得分:0)

变量标识符仅在方法ident中声明,因此在该范围之外不可见...

除非您将该方法的返回值分配给某个变量对象...

,否则无法访问它