2017-08-22 15 views
-3

以下の形式のテキストファイルを解析し、テキストファイルから必要な値のみを抽出する必要があります。テキストファイルの内容はJavaで単純なテキストファイルを解析する方法

4564444 FALSE/TRUE 0 name k0LiuME5Q3 
4342222 TRUE/ TRUE 0 id ab4454jj 

です。名前とIDの後に値を取得する必要があります。何が最善の方法です。私はJavaでScanner Classを使用しましたが、値を取得できませんでした。以下のコードで試してみました。

Scanner scanner = new Scanner(new File("test.txt")); 

    while(scanner.hasNext()){ 
     String[] tokens = scanner.nextLine().split(" "); 
     String last = tokens[tokens.length - 1]; 
     System.out.println(last); 
    } 
+3

すでに何かをしようとしたようですね。あなたの質問を編集して[mcve] – Lexi

+0

いくつかのコードを追加する – azro

+0

@ Lexiあなたのコメントに感謝します。サンプルコードを追加しました。文字列を分割しようとしました。 – Jes

答えて

1
import java.io.BufferedReader; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 

public class Read_Text_File { 

    public static void main(String[] args) { 
     System.out.println(getValues()); 
    } 

    public static ArrayList<String> getValues() { 
     FileInputStream stream = null; 
     try { 
      stream = new FileInputStream("src/resources/java_txt_file.txt"); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
     BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); 
     String strLine; 
     ArrayList<String> lines = new ArrayList<String>(); 
     try { 
      while ((strLine = reader.readLine()) != null) { 
       String lastWord = strLine.substring(strLine.lastIndexOf(" ")+1); 
       lines.add(lastWord); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     try { 
      reader.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return lines; 
    } 

} 

出力:

[k0LiuME5Q3、ab4454jj]

+0

コードに感謝します。各行はコード内の配列項目に格納されます – Jes

1

セミコロン、スペースでない分割する必要があります。

String[] tokens = scanner.nextLine().split(" "); 
+0

コンテンツ全体を分割しようとすると、1つの配列アイテムに格納されます – Jes

+1

ファイルにセパレータとしてタブがありますか?次に、それはscanner.nextLine()。split( "\ t") – JensS

1

は各ライン上の部品なしで取得するのstring.Split(「\は、S *」)を使用し、データを1行ずつ読み込みます空白を7要素の配列に変換します。これらの要素の最後のものがあなたが探しているものです。

関連する問題