0


「コマンド ラインから整数 n [1 .. 10] を送信します。コンソールに n 行を入力し、最短行と最長行を見つけます。結果と行の長さを出力します。」

私の考えは、文字列の配列を作成し、すべての行を配列にコピーBufferedReaderすることdata[i]です。私のコードのサンプル:

String[] data = new String[n];
int j=0;

for (int i = 1; i <= n; i++) {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Please, enter " + i + " string: ");
    String line = in.readLine();
    for (int j=0; j<=data.length;j++){
      data[j] = line;
      j++;  
    } ///:~

    System.out.println("Your " + i + " string : " + data[j] + "String len: " + line.length());
} ///:~

data[i]しかし、配列の要素をコンソールから新しい行で埋める方法が見つかりませんでした。
ちょっとしたヒントを教えてください。

4

3 に答える 3

1

を埋めるdataには、内側の for ループを index を使用した単純な代入に置き換えるだけi-1です。

for (int i = 1; i <= n; i++) {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Please, enter " + i + " string: ");
    String line = in.readLine();
    data[i-1] = line;
    System.out.println("Your " + i + " string : " + data[i-1] + "\nString len: " + line.length());
}

あなたが印刷しているので、 1tonの代わりに0to toループを残しました。n-1i

ただし、最短行と最長行のみが必要な場合は、すべての行を保存する必要はありません。現在の行の長さを最短行と最長行の長さと比較して確認し、適切に変更するだけで済みます。

于 2013-09-09T08:51:10.240 に答える
0

最も簡単な方法は

data[i-1] = in.readLine();
于 2013-09-09T09:12:13.327 に答える
0

すべてのあなたの助けに感謝します:) これが私の例です:

package taskstring;

import java.io.*;

public class TaskString {

    public static void main(String[] args) throws java.lang.Exception {
        int n = Integer.parseInt(args[0]);
        if (n <= 0) {
            System.out.println("Wrong! please send more numbers to java");
            return;
        }
        System.out.println("Enjoy! You are going to send " + n + " string(s) to java");
        int maxLen = 0;
        int minLen = 0;

        for (int i = 1; i <= n; i++) {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Please, enter " + i + " string: ");
            String line = in.readLine();
            System.out.println("Your " + i + " string : " + "String len: " + line.length());
            if (maxLen < line.length()) {
                System.out.println("New string is bigger");
                maxLen = line.length();
            } else {
                System.out.println("New string is smaller");
            }


            if (minLen > line.length() || minLen == 0) {
                System.out.println("New string is smaller" + " minLen=" + minLen);
                minLen = line.length();



            } else {
                System.out.println("New string is bigger");
            }

            //return;
        } ///:~
        System.out.println("Max row: " + maxLen + "\nMin row: " + minLen);

    } ///:~
}
于 2013-09-15T10:36:20.213 に答える