2016-11-02 4 views
-1

代数を表す静的メソッドを持つAlgebraという名前のJavaクラスを作成しようとしました。チルドテーブルの内容とティルドテーブルで動作します。 表は次の属性と制限があります。JAVAの.txtファイルでチルダ区切りテーブルを解析/読み込み、関係代数/ SQLのメソッドを書く方法

ほとんど12列-at

-first行を

-all列が

-column値とカラム名が制限されている文字列である列名を表します16文字まで

しかし、配列や他のコレクションにすべての行を読み込むことはできません。表示メソッドを除くすべてのメソッドは、成功を示す文字列またはエラーメッセージを返し、成功した操作ごとに新しいチルドテーブルがディスク上に生成されます。だから、テーブル、プロジェクト操作、結合操作、制限操作(制限条件は単一の条件(ANDとORはないため)に制限することができます)とコンパイラをこれらの6つに限定する方法を示すメソッドを書く必要があります: >、<、> =、< =、!=)。

ので、ドライバプログラムの本体は、次のようになります。

//restrict the cars table to toyotas producing a table named toyotas 

Algebra.Restrict("cars","MAKE='Toyota'","toyotas"); 

//project just three columns from the toyotas table producing a table named answer 

Algebra.Project("Toyotas","Make,Model,Price","answer"); 

//display the contents of the answer table 

Algebra.Display("answer"); 

出力は次のようになります。チルダテーブルに

MAKE~MODEL~TYPE~PRICE 

Toyota~Camry~Sedan~18000 

Toyota~Tacoma~Truck~19000 

Ford~Mustang~Sport~21000 

Chevrolet~Corvette~Sport~48000 

Ford~F150~Truck~25000 

Toyota~Highlander~SUV~35000 
を含む

MAKE MODEL PRICE 

---------------- ---------------- ---------------- 

Toyota Camry 18000 

Toyota Tacoma 19000 

Toyota Highlander 35000 

cars.txtファイル

私がこれまでに持っているもの

import java.io.*; 
import java.util.*; 
import javax.swing.JOptionPane; 
import javax.swing.JTable; 
import javax.swing.table.DefaultTableModel; 


public class Algebra { 
    public void readData() throws FileNotFoundException, IOException{ 


    BufferedReader in = new BufferedReader(new FileReader 
     ("cars.txt")); 

    String line; 
    while((line = in.readLine()) !=null){ 
     System.out.println(line); 

    } 

    in.close(); 


    } 
    /*Method used to restrict data--Using WHERE clause*/ 
    public void Restrict(){ 

    } 
    /*Method used to project data--Using SELECT clause*/ 
    public void Project(){ 

    } 
    /*Method used to join the data--Using JOIN clause*/ 
    public void Join(){ 

    } 
    /*Display results from combination of previous methods*/ 
    public void Display(){ 

    } 
} 
+1

String.splitメソッドを見てください。これは地球上でSQLと何が関係していますか? – OldProgrammer

+0

不正確なタグを削除しました。 –

+0

削除のおかげで申し訳ありませんが、私は(SQLプロジェクトの関係代数を表示する3つの方法、制限とマイナス)を投稿しないようにし、タグを削除することを忘れてしまったという問題が実際にはもっとありました。 –

答えて

0

唯一の要件は、ファイル・ライン・バイ・ラインを印刷する場合、既存のreadData()方法は、正しいファイルパスが作成FileReaderオブジェクトに供給されると仮定すると、十分です。

加えて、各ラインは、セパレータとして~を使用して、4つのフィールドに分割されなければならない、場合に、(whileループ内)次の文は、行ごとに4つのフィールドの配列を生成する:

String[] fields = line.split("~"); 

行の先頭または末尾、または~区切りのスペースは、文字列trim()によって削除できます。セパレータについては、split()メソッドの正規表現をsplit("\\s*~\\s*")に拡張することによっても削除できます。

関連する問題