2012-04-30 14 views
1

比較的単純なファイル読み込みを実行していますが、入力値とフラットファイルから読み込んで格納されたデータ値の間の検証で異常が発生しました配列内にあります。私はfirstNameフィールドにエラーをトレースしました。このフィールドをarray[0]と定義しています。 While array[0]は私の出力に完全に表示されます。fieldName ...それは空白かヌルです。配列内の文字列を文字列変数にコピーする際に問題が発生しました

ここに私のコードと出力サンプルがあります。

Stringbuilderがここで最も適切に使用されているかどうかわかりません。または深いStringメソッドの1つ?私が試したことのどれもうまくいかないようです。私は何が欠けている...私はそれが私がちょうど見ることができない明らかな何かを知っている。

public class DisplaySelectedNumbers 
{ 
    public static void main(String[] args) 
    { 
     final String FN = "   "; 
     final String LN = "   "; 
     final String PHONE = "0000000000"; 
     String delimiter = ","; 
     String s = FN + delimiter + LN + delimiter + PHONE + System.getProperty("line.separator"); 
     final int RECSIZE = s.length(); 
     String[] array = new String[3]; 
     Scanner kb = new Scanner(System.in); 
     Path file = Paths.get("PhoneList.txt"); 
     String fName = JOptionPane.showInputDialog(null,"Enter first name to search"); 
     try 
     { 
      InputStream iStream=new BufferedInputStream(Files.newInputStream(file)); 
      BufferedReader reader=new BufferedReader(new InputStreamReader(iStream)); 
      while ((s = reader.readLine()) != null) 
      { 
       array = s.split(delimiter); 
       String dispString = array[0]+" "+array[1]+" "+array[2]+"\n"; 
       System.out.println("array[0]="+array[0]); 
       System.out.println("array[1]="+array[1]); 
       System.out.println("array[2]="+array[2]); 
       String firstName = array[0]; 
       System.out.println("firstName="); 
        s=reader.readLine(); 
      } 
     } 
     catch(Exception e) 
     { 
      System.out.println("Message: " + e); 
     } 
    } 
} 


array[0]=D 
array[1]=JJ 
array[2]=
firstName= 
array[0]=B 
array[1]=EE 
array[2]=1111111111 
firstName= 
array[0]=D 
array[1]=GG 
array[2]=0033333333 
firstName= 
+0

笑、あなたは真剣にそれを把握することができませんか? :Pこれはあなたが物事を考えるときに起こることです:-) – noMAD

+0

確かに、確かに。長い一日だった。 – dwwilson66

答えて

5

あなたが実際にfirstName変数を印刷するのを忘れ:

System.out.println("firstName="); 

あなたが代わりに必要:あなたの中のStringBuilderを使用して、はい、本当に

System.out.println("firstName=" + firstName); 
+0

ねえ、何を推測!できます!ああ、神様。私は盲目的に自分自身を下降させることができますか?第二の目のためのThansk。 – dwwilson66

+0

心配する必要はありませんし、downvoteする必要はありません。これは誰にも起こりうる! –

1

あなたの質問のための完全な答えはないが、文字列連結速度を向上させる必要がある場合は、特にループ内でコードを改善する方がよいでしょう。

StringBuilder vs String concatenation

関連する問題