-3

私は現在、テキスト ファイルからデータを読み込んで処理する必要があるプログラミングの課題に取り組んでいます。ファイルは次のようになります。

CS1 2012 Group 1
8
5,5,5,6,5,8,9,5,6,8, good, very good, excellent, good
7,7,8,7,6,7,8,8,9,7,very good, Good, excellent, very good
8,7,6,7,8,7,5,6,8,7 ,GOOD, VERY GOOD, GOOD, AVERAGE
9,9,9,8,9,7,9,8,9,9 ,Excellent, very good, very good, excellent
7,8,8,7,8,7,8,9,6,8 ,very good, good, excellent, excellent
6,5,6,4,5,6,5,6,6,6 ,good, average, good, good
7,8,7,7,6,8,7,8,6,6 ,good, very good, good,  very good
5,7,6,7,6,7,6,7,7,7  ,excellent, very good, very good, very good

最初の 2 行が読み込まれ、フィールドに割り当てられます。残りの行は、処理する必要がある行です。使用するように言われました.useDelimiter("[ ]*(,)[ ]*")が、今のところ十分に使用できていません。

データが読み込まれたら、switch ステートメントを使用して文字列を整数に変換し、平均フィードバック スコアを計算する必要があります。例:
優れた = 5
とても良い = 4
良い = 3

スクリーンショット:

ここに画像の説明を入力

4

1 に答える 1

1

入力をカンマで区切るために、引数として「,」を使用してuseDelimiter(str)メソッドを使用できます。Scannerその後、単語の周りのスペースを削除し、文字列をtrim()andで小文字にしますtoLowerCase()。その後、標準的な方法で文字列を取得し、適切と思われる方法で整数に変換できるようにします。以下は、まさにそれを行うコードです

import java.util.*;

public class Parser {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        sc.useDelimiter(",");
        while (sc.hasNext()) {
            String s = sc.next().trim().toLowerCase();
            // Now check s accordingly to do what you want it to do
        }
    }
}

useDelimiter()最初は空白を区切り文字として使用したいので、ファイルの最初の2行を解析した後にメソッドを使用する必要があります。

于 2013-02-26T17:28:15.720 に答える