Java를 사용하여 어떻게 진행되는지 확인

8721 단어 Java
여기 기사.에서 소개한'진전이 어떠한가'를 나는 자바로 써 보았다.
Gist
https://gist.github.com/akiotanaka0926/43f4cbff6c70ea55dcbc
WorkProgress.java
package work.progress;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 進捗どうですかで煽る=□>
 * 
 * @author AQUA
 */
public class WorkProgress {

    /** 進捗どうですか マッチング用 */
    private static final String WORK_PROGRESS = "進捗どうですか";

    /**
     * メイン実行
     * 
     * @param args
     *            引数(なし)
     */
    public static void main(String[] args) {
        Map<Integer, String> progressWordMap = createProgressWordMap();
        StringBuilder sb = new StringBuilder();

        Pattern pattern = Pattern.compile(WORK_PROGRESS);
        Random random = new Random();
        int inFlameCount = 0;

        while (!isWorkProgress(sb.toString(), pattern)) {
            String addWord = progressWordMap.get(random.nextInt(4));
            System.out.print(addWord);
            System.out.print(" ");
            sb.append(addWord);
            inFlameCount++;
            if (inFlameCount == 50) {
                System.out.println();
                inFlameCount = 0;
            }
        }
        System.out.println(" ???");
        System.out.println(sb.length() + "文字で煽られました");
    }

    /**
     * 進捗どうですか をランダムで表示するためのマップを生成します
     * 
     * @return 進捗どうですかマップ
     */
    private static Map<Integer, String> createProgressWordMap() {
        Map<Integer, String> progressWordMap = new HashMap<>();

        progressWordMap.put(0, "進捗");
        progressWordMap.put(1, "どう");
        progressWordMap.put(2, "です");
        progressWordMap.put(3, "か");

        return progressWordMap;
    }

    /**
     * 進捗どうですか が出現したかを判定します
     * 
     * @param mattchingWord
     *            判定する文字列
     * @param pattern
     *            パターン(進捗どうですか)
     * @return true:出現<br>
     *         false:未出現
     */
    private static boolean isWorkProgress(String mattchingWord, Pattern pattern) {
        Matcher matcher = pattern.matcher(mattchingWord);
        return matcher.find();
    }
}
실행 결과

주문서를 제대로 측정하지는 못했지만 좀 더 효율적으로 하고 싶어요.
20분 정도만 하면 되니까 일단 만족합니다.
원하시면 팩스 다시 보내드릴게요.

좋은 웹페이지 즐겨찾기