Java
サンシャイン池崎

ツイッターで見た「サンシャイン池崎ゲーム」をJavaで作ってみた。

こんなツイートがTLに流れてきて、なんか、ズンドコキヨシの時のアトモスフィアを感じたので、Javaで実装してみた。

ムスメ5歳とゲームを考えた。
題して「サンシャイン池崎ゲーム」。
ルールはシンプル。歌を歌って「い」がついたら、「イェー!」に変えるだけ。
ムスメ5歳「おおきなのっぽの古どけイェー!、おじイェー!さんのとけイェー!!」
げらげら笑った。
https://twitter.com/ziuziu/status/918070729341587457

仕様としては
・入力された文字列に「イ」または「い」があったら「イェー」に置き換える。
・「イ」・「い」が連続する場合は、2回目以降を「ー」に置き換える。

その実装がこちら
仕事終わりの頭で、作ったせいか。なかなかの汚いコードですが・・・(これがお前の実力さ)

import java.util.Arrays;

public class Yeah {
    /**
     * 入力された文字列に「い」または「イ」が合ったら、「イェー」に置き換えてください。
     * ただし、連続する場合は2回目以降は「ー」に置き換えてください。
     */
    public String convert(String text) {
        boolean alwaysHit = false;
        String[] hit = {"い", "イ"};
        String[] strArray = toArray(text);
        for (int i = 0; i <= strArray.length - 1; i++) {
            if (Arrays.asList(hit).contains(strArray[i])){
                if (alwaysHit == false) {
                    strArray[i] = "イェー";
                    alwaysHit = true;
                } else {
                    strArray[i] = "ー";
                }
            }else{
                alwaysHit = false;
            }
        }
        return Arrays.toString(strArray).replace(" ", "").replace(",", "").replace("[", "").replace("]", "");
    }

    private String[] toArray(String str) {
        String[] returnStr = new String[str.length()];
        // 変数strの長さ分回す
        for (int i = 0; i <= str.length() - 1 ; i++) {
            // 配列に順番に格納する
            returnStr[i] = String.valueOf(str.charAt(i));
        }
        return returnStr;
    }
}

上記のコードを以下のテストコードを書いて、実行

import static org.junit.Assert.*;

import org.junit.Test;

public class YeahTest {

    @Test
    public void testConverter() {
        Yeah yeah = new Yeah();
        assertEquals("イェーーーーーーええええイェーーーーーー", yeah.convert("イイイイイイええええいいいいいい"));
        assertEquals("イェーえイェーーえええええイェーえイェーえイェーー", yeah.convert("イえイイえええええいえいえいい"));
        assertEquals("激唱イェーンフィニティ", yeah.convert("激唱インフィニティ"));
    }

}

image.png
やりたいことはやったので、これで・・・もう、寝ます。( ˘ω˘ )スヤァ