この問題を解くためには…
 → 応用編第6日目参照

問題6:コレクション②

probex6-1.(難易度:★)

下記の実行結果に倣い、コンソールから、英単語を入力すると、それに対応する日本語が出てくるようにしなさい。なお、英語と日本語の対応には、HashMapを用いること。また、英語と日本語の対応は、以下の表を用いること。

なお、コンソールから文字列を入力する方法は、応用編第5問の、probex5-4を参考にすること。

英単語と日本語の対応表
英語日本語
cat
dog
bird
tigerトラ
期待される実行結果①(対応する日本語があった場合)
英語で動物の名前を入力してください:cat ← コンソールから英単語を入力

「猫」です。

期待される実行結果②(対応する日本語がない場合)
英語で動物の名前を入力してください:horse

対応するデータは登録されていません。

probex6-2.(難易度:★★)

実行結果にならい、キーボードから整数の値を入力すると、その値が漢数字で出力されるプログラムを作りなさい。このとき、用いられるのは、1から9に対応するのが、一から九までの漢字で、ゼロは、〇と表示するようにしなさい。また、この数字と漢字の対応は、HashMapを用いて作りなさい。また、結果を出力する際には、3桁ごとに「,」(コンマ)を出力すること。

※ヒント:入力は、数値としてではなく、文字列として受付、その中身が妥当かどうか調べるとよい。

期待される実行結果(整数の値が入力された場合)
整数の値を入力してください:1198000 ← コンソールから整数の値を入力

変換結果:一,一九八,○○○

期待される実行結果(整数以外の値が入力された場合)
整数の値を入力してください:hello

整数の値を入力してください。

probex6-3.(難易度:★)

1から10までの乱数を10回発生させ、その結果を表示し、そのあとに、そこで出力された文字の種類を表示するプログラムを作りなさい。数値はHashSetに登録し、1つの数が複数出現しても、一つとしてカウントするものとする。

期待される実行結果
乱数: 1 2 1 10 8 7 5 4 2 9
出現した数: 1 4 5 7 9 10

probex6-4.(難易度:★★)

実行結果にならい、キーボードから英単語を入力し、その単語に用いられている文字を全種類表示するプログラムを作りなさい。文字は、HashSetに登録し、一つの単語内に同じ文字が複数使用されていても、一つとしてカウントすること。

期待される実行結果
英単語を入力:apple ← 英単語を入力
使用されているアルファベット : a e l p ← 出力結果(pは複数回使われているが、出力は一回でよい)

probex6-5.(難易度:★)

以下のプログラムは、二つの文字列s1,s2を比較し、同じ文字列であれば、「○○と××は、同じ文字列です。」そうでなければ、「○○と××は、同じ文字列ではありません。」と表示するプログラムである。しかし、このプログラムは、s1とs2がともに、同じ「hoge」という文字列であるのに、結果は等しくないと表示されている。

このプログラムを修正し、「hogeとhogeは、同じ文字列です。」と表示されるように直しなさい。

Problemex6_5.java
package problemex6;

public class Problemex6_5 {

	public static void main(String[] args) {
		String s1 = "hoge";
		String s2 = new String("hoge");
		if(s1 == s2){
			System.out.println(s1 + "と" + s2 +"は、同じ文字列です。");
		}else{
			System.out.println(s1 + "と" + s2 +"は、同じ文字列ではありません。");
		}
	}

}
実行結果
hogeとhogeは、同じ文字列ではありません。