2016-11-17 10 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に文字列を渡している場合、私はそれを見ているようにあなたが望むものではありません。ファイルを渡す場合は、 'new Scanner(new File(" Identifiers "))'のようなコードを使用してください。 – randominstanceOfLivingThing

0

に戻り値を格納する必要があります。すべての

  • まず:ident方法は、値(identifier)を返し、あなたはあなたのmainメソッド内でこの値を使用していません。代わりに変数identifierに直接アクセスしようとしていますが、identメソッド内でのみ可視/アクセス可能です。これを解決するには、次のようになります。

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

  • 第二の問題:私の意見では、ループのためにいくつかのトラブルの原因となります。ご覧のとおり、配列は405要素で初期化されています。あなたがそれらのすべてを反復処理したい場合は、0から404までで、406

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

0

が唯一の方法identに宣言された変数識別子は、したがって、その外に表示されていないではありませんスコープ...

このメソッドの戻り値を変数オブジェクトに割り当てない限り、アクセスできません。

関連する問題