問題004(4点)

英語の文章に出現する単語の中で、文字数が最も多い単語を出力して終了するプログラムを作成してください。
入力データには英文字、スペースのみが含まれているものとします。
単語とは、スペースで区切られた連続する英文字の列です。文章の文字数は80 文字以下です。
一つの単語の文字数は32 文字以下です。最長の文字数を持つ単語は文中にただ一つだけ存在します。

入力

英語の文章を表現する文字列(半角の英文字、スペース)

出力

最も文字数が多い単語1個

入力例

Good medicine tastes bitter

出力例

medicine

考え方

文字列を分ける関数・サブルーチン・メソッドを使えば楽。
半角スペースで分けてしまいましょう。
BASICで探したけどなかった。
こればかりはCやJavaが有利か。



//
//A004.java
//java1.4以上でないとコンパイル・実行できません。
//(java.lang.String#splitメソッドは1.4で追加されたため)
//

import java.io.*;

public class A004{
    public static void main(String[] args)throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        //データを入力
        String data=br.readLine();
        //半角スペースで分ける
        String[] words=data.split(" ");
        //一番文字数が多い単語を探す
        int max=0;
        for(int i=0;i<words.length;i++){
            if(words[i].length()>max){
                max=words[i].length();
            }
        }
        //一番文字数が多い単語を出力
        for(int i=0;i<words.length;i++){
            if(words[i].length()==max){
                System.out.println(words[i]);
                //↓これはなくてもいいけど
                break;
            }
        }
    }
}


正しくゲームをするページ>パソコン甲子園攻略>ココ