2016-11-24 8 views
0

ファイルの各行から4番目と5番目の文字を印刷しようとしています。Javaの個々のファイル行の文字を印刷する

これはオンラインテストに関する質問です。それは私が時間内に把握できなかったものでした。私は学習目的でこれをやっています。

とにかく、私は行を繰り返してそれらの文字を印刷しようとしています。明らかに私は何か間違っているよ!

ファイルが含まれています

1001XXXXYYYYZZZZ 
2002AAAABBBBCCCC 
3003LLLLMMMMNNNN 
4004SSSSTTTTUUUU 

出力は次のようになります。

1X 
2A 
3L 
4S 

ここでは、私はいくつかの出力を生成するためにそれを得ていたしました私のコード

import java.io.PrintWriter; 
import java.util.Scanner; 
import java.io.FileNotFoundException; 
public class Quiz9 { 
    public static void main (String [] args) throws FileNotFoundException{ 
     Scanner in = new Scanner("/Users/abc/input.txt"); 
     PrintWriter out = new PrintWriter("/Users/abc/output.txt"); 
     String a; 
     while (in.hasNextLine()) { 
      for(int i=0;i<4;i++) { 
       a = in.next(); 
       char b = a.charAt(5); 
       char c = a.charAt(6); 
       out.println(b +""+ c +"hello"); 
      } 
     } 
     in.close(); 
     out.close(); 
    } 
} 

ですが、リストにさえいない "\ s"と言うだけです!私はどこが間違っているのかわかりません。

+1

'while 'の' for'ループは必要ないと思います。 –

答えて

1

ファイル名ではなくScanner(File source)を使用する必要があります。 ファイル名の5番目と6番目の文字がs\であるため、\sが得られています。

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.PrintWriter; 
import java.util.Scanner; 

public class Quiz9 { 
    public static void main(String[] args) throws FileNotFoundException { 
     Scanner in = new Scanner(new File("/Users/abc/input.txt")); 
     PrintWriter out = new PrintWriter("/Users/abc/output.txt"); 
     String a; 
     while (in.hasNextLine()) { 
      a = in.nextLine(); 
      char b = a.charAt(3); 
      char c = a.charAt(4); 
      out.write(b + "" + c + "\n"); 
     } 
     in.close(); 
     out.close(); 
    } 
} 
+0

ありがとうございました! :) – asdfghjklm

+0

だから私はいつも '' 'を使うべきです。 。 。新しいスキャナ(新しいファイル( "/ file.txt")) '' 'スキャナファイル用? – asdfghjklm

+0

@KylianMurphy、ファイルからスキャンする必要がある場合。それはうれしかったです。 –

3

あなたは、ファイル名ではなく、ファイルの内容をスキャンしている...これを試してみてください。例えばスキャナ(新しいファイル(...))

+0

ああ、おまえ!ありがとうございました! – asdfghjklm

関連する問題