• ベストアンサー

for文とStringBuffer

javaのfor文の使い方 質問者:asutarisuk コマンドライン引数で入力した文字が3文字以下ならその文字列を20個文字連結して表示し、4文字以上ならたくさんと表示したいのですが表示できません。 import java.io.*; public class ABC { public static void main(String args[])throws IOException{ BufferedReader myReader = new BufferedReader( new InputStreamReader(System.in), 1 ); String str = myReader,readLine(); if(str.length() >= 4){ System.out.println("たくさん"); } StringBuffer buf = new StringBuffer(str.length()*20); for(int i = 0;i < 20; i++){ buf.append(str); System.out.println(buf); } } } としたら、たくさんと表示されません。どこを修正すればいいでしょうか?ちなみにfor文とStringBufferクラスを用いてというのが条件です。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

> コマンドライン引数を受け取るというのはintなどで受けるという事でしょうか? intで受ける? なぜに? main(String args[]) となっているのだから、文字列でしか受け取れないではないですか。 #文字列で受け取って変換するのはありますが プログラム起動時に渡したコマンドライン引数が、 このargsという配列に入ってくるので、それを 繰り返す対象の文字列として取るだけという話なんですけど。 > String str = myReader,readLine(); のように、わざわざプログラムの中で読み込む動作をすることはない ということです。 問題が要求しているものと違いますしね。

asutarisuk
質問者

お礼

ありがとうございます。解決いたしました。

その他の回答 (2)

  • bgbg
  • ベストアンサー率53% (94/175)
回答No.2

コマンドラインの引数は、配列 args に入っています。 標準入力ではありません。

asutarisuk
質問者

お礼

標準入力ではないとはどういう事なのでしょうか?

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

> コマンドライン引数で入力した文字が ぱっと見て、コマンドライン引数を受け取って処理するように 見えないのですけど、正しい仕様はどうなんでしょうか?

asutarisuk
質問者

お礼

すいません、まだ始めて1週間で言葉の意味がよくわかりません。 コマンドライン引数を受け取るというのはintなどで受けるという事でしょうか?

関連するQ&A