1

stdin を介して次の入力を送信しています。

4 2

30 1

30 2

15 3

25 4

私のコードは次のとおりです。

public static void main(String[] args) throws IOException {

        BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
        String submittedString;
        System.out.flush();
        submittedString = stdin.readLine();

        zipfpuzzle mySolver = new zipfpuzzle();
        mySolver.getTopSongs(submittedString);

    }

どの呼び出し:

//Bringing it all together
    public String getTopSongs(String myString) {

        setUp(myString);
        calculateQuality();
        qualitySort();
        return titleSort();

    }

どの呼び出し

public void setUp(String myString) {

    String tempString = myString;

    //Creating array where each element is a line
    String[] lineExplode = tempString.split("\\n+");

    //Setting up numSongsAlbum and songsToSelect
    String[] firstLine = lineExplode[0].split(" ");
    numSongsAlbum = Integer.parseInt(firstLine[0]);
    songsToSelect = Integer.parseInt(firstLine[1]);

    System.out.println(lineExplode.length);
//etc
}

ただし、何らかの理由で lineExplode.length は値 1 を返します...何か提案はありますか?

よろしく、 ダリオ

4

5 に答える 5

0

ファイルが UNIX スタイルの行末 (\n) を使用していることは確かですか? クロスプラットフォームの分割には、次を使用します。

String[] lineExplode = tempString.split("[\\n\\r]+");
于 2013-04-01T15:26:15.297 に答える