2016-11-17 43 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因此是不可見之外的範圍...

,除非您分配方法的一些變量對象的回報,你不能訪問它...