LoginSignup
4

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-10-12

こんなツイートが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
やりたいことはやったので、これで・・・もう、寝ます。( ˘ω˘ )スヤァ

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4