Java
サンシャイン池崎

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

More than 1 year has passed since last update.

こんなツイートが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

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