2016-11-17 88 views
0

我一直收到"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); 
    } 
} 

回答

0

您需要的返回值存储在一个变量

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

这是超级有帮助,我很感激。 现在我收到一个异常,看起来像这样。 (我是一个没有经验的程序员,不知道如何处理这样的事情) 线程“main”中的异常java.util.NoSuchElementException:未找到行 at java.util.Scanner.nextLine(Scanner.java:1585 ) at Library.ident(Library.java:17) at Library.main(Library.java:37) 我真的很感激你能不能指出我正确的方向。 – Eric

+0

查看[scanner api doc](https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html)。如果你正在传递一个字符串给Scanner,这不是你想要的,因为我看到它。如果你想传递一个文件,使用像'新扫描仪(新文件(“标识符”))''的代码 – randominstanceOfLivingThing

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++)

0

变量标识符只有在方法声明ident因此是不可见之外的范围...

,除非您分配方法的一些变量对象的回报,你不能访问它...