Help us understand the problem. What is going on with this article?

Javaで湯婆婆を実装してみる

はじめに

この記事は僕が電車の中で思いついたものを元にしたネタ投稿です。
何か技術を書き記したものではありませんのでご容赦ください。
それから、この記事は映画「千と千尋の神隠し」のネタバレになる可能性があります。
「大丈夫!」って人だけ下に進んでください。

コード

Yubaba.java
import java.util.Scanner;
import java.util.Random;

public class Yubaba {
    public static void main(String[] arts){
        System.out.println("契約書だよ。そこに名前を書きな。");

        Scanner keiyakusho = new Scanner(System.in);
        String name = keiyakusho.nextLine();

        System.out.println("フン。"+name +"というのかい。贅沢な名だねぇ。");

        Random random = new Random();
        int newNameIndex = random.nextInt(name.length());
        String newName = name.substring(newNameIndex,newNameIndex+1);

        System.out.println("今からお前の名前は"+newName+"だ。いいかい、"+newName+"だよ。分かったら返事をするんだ、"+newName+"!!");
    }
}

こちらがコードになります。これをEclipseとかIntelliJとかにコピペすれば動きます。
「湯婆婆を実装」とはいうものの湯婆婆そのものを完全再現するというわけではなく、「千と千尋の神隠し」の名シーンの一つである湯婆婆が千尋を従業員として雇うシーンのみの再現となります。期待してた人には申し訳ない

コードの解説

契約書

湯婆婆はまず契約書を渡してきます。

import java.util.Scanner;

//~~~~~~
System.out.println("契約書だよ。そこに名前を書きな。");

Scanner keiyakusho = new Scanner(System.in);
String name = keiyakusho.nextLine();

System.out.println("フン。"+name +"というのかい。贅沢な名だねぇ。");

Scannerクラスを使ってコンソールから名前の入力を受け取り、変数に保存します。

名前を奪う

次に湯婆婆は名前を奪います。

import java.util.Random;

//~~~~~~

Random random = new Random();
int newNameIndex = random.nextInt(name.length());
String newName = name.substring(newNameIndex,newNameIndex+1);

0以上(入力された文字数)未満で乱数を生成し、入力された文字列からランダムで一文字選んで抜き出します。

System.out.println("今からお前の名前は"+newName+"だ。いいかい、"+newName+"だよ。分かったら返事をするんだ、"+newName+"!!");

そして抜き出した一文字を新しい名前として与えます。

実行結果

スクリーンショット 2020-10-30 13.24.09.jpeg

おまけ

察しのいい人や、Javaに聡い人はコード全文を見た時点で気づいたかもしれません。「おいおい、こいつ"名前の入力が空白だった場合"の処理を書いてないぞ」と。
そうです。このコードには名前の入力が空白だった場合の処理をあえて書いていないのです。
なので名前の入力を空白にすると湯婆婆がクラッシュするという若干ゃプログラマっぽいネタコードになっています。クラッシュ湯婆婆とかいうパワーワード
スクリーンショット 2020-10-30 13.19.33 2.png
湯婆婆がクラッシュとか面白そうじゃないですか。
あと映画の方でも名前の入力が空白だった場合のセリフなんてなかったしあえてそうしないほうが映画に忠実なのかなってことで許してください(必死の言い訳)。
クラッシュもしてなかったけどな
(2020/11/05 追記)
ここでは書きませんでしたが「どうしてもエラーを治したい!」って人はこちらにわかりやすく書かれているので参考にするといいかもです。

最後に

ここまで読んでいただきありがとうございました。
Javaで湯婆婆を実装してみる、ということでJa婆婆を実装してみました。
ネタで内容が全て終わりましたが読んでいただけて幸いです。
ジブリファンか黒柳徹子さんにぶっ殺されたら骨だけは拾ってください
(2020/11/05 追記)
現在色々な方々が色々なネタで湯婆婆の記事を書いてくださっており、「こんな言語あるんだ」とか「これってこんな感じなのか」ってな感じで楽しく拝見させてもらってます。
特に何も考えないで投稿したネタ記事ですがいろんな人に見てもらって反応をいただいたり別言語でアレンジしてもらったりして嬉しい限りです。
トレンドに湯婆婆の記事が3つぐらい載ってたときとか「ネタ」のタグのページ見たときは声あげて笑いました。
今度から積極的に電車に乗ろうと思います。
(2020/11/08 追記)
湯婆婆タグができてたので追加しないわけにはいかんだろと思い追加しました。
(2020/11/11 追記)
湯婆婆関連の記事をピックアップした自動更新のランキングができたようです。ぜひ見に行ってみてください。
(2020/11/13 追記)
僕の知らない間に湯婆婆のアドカレができたようです。
トップバッターにこの記事載せていいかな…

Nemesis
かつて大トロを都市伝説だと思ってた人
https://nemesis62542.github.io/portfolio/
nnn-school
IT×グローバル社会を生き抜く“創造力”を身につけ、世界で活躍する人材を育成する。
https://nnn.ed.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away