3

これを最も基本的な形に分解したと思います。そうでない場合は、お詫びし、編集を試みます。変数を既に文字列に設定している場合、while ループで FirstName の文字列をキャストする必要があるのはなぜですか? 私は何か間違ったことをしていますか?FirstName 変数を、テキスト ファイルなどの最初の単語であるはずの最初のトークンと等しくなるように設定しようとしています。

  try
            {
                BufferedReader infileCust =
                        new BufferedReader(new FileReader("C:\\custDat.txt"));
    }
      catch(FileNotFoundException fnfe)
            {
                System.out.println(fnfe.toString());
            }
            catch(IOException ioe)
            {
                System.out.println(ioe.toString());
            }
        }

        public static void createCustomerList(BufferedReader infileCust,
                CustomerList custList) throws IOException
    {    
        String  FirstName;
        String  LastName;
        int  CustId;


        //take first line of strings before breaking them up to first last and cust ID
        String StringToBreak = infileCust.readLine();
        //split up the string with string tokenizer
        StringTokenizer st = new StringTokenizer(StringToBreak);

        while(st.hasMoreElements()){
        FirstName = (String) st.nextElement();
        LastName = (String) st.nextElement();
        CustId = Integer.parseInt((String) st.nextElement());

        }

編集:明らかに、代わりに nextToken() を使用できます。しかし、なぜ私の変数が使用されていないと表示されているのでしょうか? それらは while ループの範囲内にありませんか?

4

3 に答える 3

6

これは、nextElementオブジェクトを返すためです。を呼び出す場合はnextToken、キャストする必要はありません。

ドキュメントから:

public オブジェクト nextElement()

宣言された戻り値が String ではなく Object であることを除いて、nextToken メソッドと同じ値を返します。このクラスが Enumeration インターフェースを実装できるようにするために存在します。

編集使用されていない変数について: 警告が表示される理由は、変数が割り当てられているが、何らかの方法で印刷、保存、または分析されていないためです。たとえば、writeln姓と名で呼び出しを追加すると、警告は消えます。

于 2012-02-13T00:06:11.493 に答える
3

StringTokenizer.nextElementを返すからですjava.lang.Object。ここのドキュメントを参照してください: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.htmlnextToken() : String必要に応じて代わりに使用できます。

于 2012-02-13T00:06:32.817 に答える
2

StringTokenizer.nextElement()が返すため

宣言された戻り値が String ではなく Object であることを除いて、nextToken メソッドと同じ値です。このクラスが Enumeration インターフェイスを実装できるようにするために存在します。

于 2012-02-13T00:06:41.683 に答える