2017-02-23 5 views
-1

私はboysNames.txtという名前のファイルから名前を取得しようとしています。それは1000人の少年の名前を含んでいる。たとえば、すべての行は、このようなファイルに次のようになります。ファイルI/Oプラクティス。

  1. デバン
  2. クリス
  3. トム

の目標は名前だけで読みしようとしていたが、私はcouldn java.utilパッケージのboysName.txtファイルの名前だけを取得できるメソッドを見つけました。

たとえば、私はちょうどDevan、次にChris、そしてtomをつかみたいと思っていました。

NOT "1. Devan"と "2. Chris"。

問題はhasNextLineが行全体を取得することです。私は "1"を望んでいません。部。

私はちょうどDevan、Chris、TomをString型の変数に読み込んだり格納したりしたいと思います。誰もそれを行う方法を知っていますか?私はHasNext()を試したが、うまくいかなかった。ここで

ここのコードは、Visualを得ることができるので:

import java.io.PrintWriter; 
    import java.io.FileOutputStream; 
    import java.io.FileNotFoundException; 
    import java.util.Scanner; 
    import java.io.FileInputStream; 
    public class PracticeWithTxtFiles { 
     public static void main(String[] args){ 
     PrintWriter outputStream = null; 
     Scanner inputStream = null; 
     try{ 
      outputStream = new PrintWriter(new FileOutputStream("boys.txt")); //opens up the file boys.txt 
      inputStream = new Scanner(new FileInputStream("boyNames.txt"));//opens up the file boyNames.txt 
     }catch(FileNotFoundException e){ 
      System.out.println("Problem opening/creating files"); 
      System.exit(0);  
     } 

     String names = null; 
     int ssnumbers= 0; 

     while(inputStream.hasNextLine())//problem is right here need it to just 
      // grab String representation of String, not an int    
     { 
      names = inputStream.nextLine(); 
      ssnumbers++; 
      outputStream.println(names + " " + ssnumbers); 
     } 

     inputStream.close(); 
     outputStream.close(); 
    } 
} 
+1

全体の行を読んで、必要のないビットをトリムします。それは明白ではありませんか?あなたはファイルリーダーがあなたのためにファイル内のデータを魔法のように解釈し、あなたにとって重要なものを決めることを望んでいますか? – John3136

+0

Lol、そうではありません。あなたは明らかに読むことができないようです。私はそれがないことを知っている。 hasNextLine()は行全体を読み取ります。私はちょうどストリングのストリング表現をつかむメソッドがあるかどうか疑問に思っていました。それで、それはストリングだけをつかむでしょう。 hasNextIntと同様に、intの整形式を取得するだけです。 – MoneyMonster

+0

アルファベットだけを読み込むJavaの読者がいるとは思っていません。達成するための他の方法があります。正規表現を使用したり、関数を置き換えたりしてください。 –

答えて

0

あなたが気づいていない場合は、ちょうどそのようにそのような単純な、置き換えない方法 String - Library

を交換して、この文字列のAPIをチェック。

names = names.replace(".","").replaceAll("[0-9]+","").trim() 
+0

ありがとうございました。 – MoneyMonster

+0

ようこそ、それが正常に動作する場合は、答えとしてマークしてください。 –

関連する問題