Lesson6後半 コレクション、例外 -string型からchar型の変換は.toCharArray()メソッド- Java,テックアカデミー

今日はLesson6後半を進めます。

残りの課題は4個。終わりが見えてきましたね。

スポンサーリンク
広告

列挙型とコレクション

早速、新規列挙型の作成に躓きました。

列挙型の新規作成は新規クラスの2個下にあるんですね。

コレクションの種類は、たくさんあるみたいです。

また覚える事多いですね。

例外とは、実行するとエラーになる事。

try-catch節を使用すれば、エラーが出たときに専用の動作を指定できるようですね。

これは便利そうです。

課題:相性診断プログラム

かなり躓きましたので、ポイントを書き出します。

  • 二人分の名前をscannerクラスで取り出しますが、クラスは1個でOK
  • 文字コードの取り出しはchar型で取り出す
  • scannerクラスではchar型で直接取り出す事はできないので、string型で取り出してchar型に変換
  • string型からchar型の変換は.toCharArray()メソッドを使用
  • 全ての文字をchar型にするためにfor文を使用
  • char型とint型の足し算はそのままできる(結果はint型になる)

最初に二人分の名前を取り出すということで、scannerクラスを2個newして作りましたが、

謎のエラーで進めなくなりました。

1個に減らして解決。ここが一番手間取りました。

1個で2回取り出せるのは朗報なのですが、何故2回scannerクラスを使うとエラーになるのか?謎です。

.toCharArray()メソッド一回だけだと一文字しかchar型で取り出せないので、for文で文字の長さ分繰り返しました。

また、数値を扱う型同士の変換は

  • ワイドニング変換(大きな型に小さな型を代入)
  • ナローイング変換(小さな型に大きな型を代入)

の2種類があるようです。

ワイドニング変換はそのまま代入でき、char型からint型へはワイドニング変換となります。

int x =3;

char y = ‘a’;

System.out.println(x+y);

とコーディングするとちゃんと計算してくれて100と表示されます。

ちなみにaの文字コードは97。x+yはint型のようです。

ナローイング変換は、新しい型の変数 = (新しい型)変数名;にする必要があるようです。

double型からint型への変換はナローイング変換となり、

double x = 3.1;

int y = 3;

int sum = (int)x + y;

System.out.println(sum);

とコーディングすると、double x が int型に変換されているので6と表示されます。

ちなみに、int型からdouble型の変換はワイドニング変換となり、

double x = 3.1;

int y = 3;

System.out.println(x+y);

とコーディングすると、int y がdouble型に変換されて6.1と表示されます。

ワイドニング変換の時は勝手に変換してくれるので、注意しなくて大丈夫そうですね。

スポンサーリンク
広告