見出し画像

Java勉強中:文字読み取りと変換編

こんにちは。しゅいろうです。Javaの勉強を始めて、大体1週間…魔法の呪文に見えていたものが、なんとなく理解できる言葉になってきた気がします。今回は復習もかねて、情報を受け付けるScannerクラスと、変換について整理します!

そもそも、Scannerクラスとは

まず、Scannerクラスは

キーボードから入力された文字列や数値を受け取ってプログラムの中で処理するときに使用するのが Scanner クラスです。

https://www.javadrive.jp/start/scanner/

というものであるそうです。引用なので、他人口調。情報をどう扱うかの前に、そもそもその情報をどこから持ってくるか、の一つの手段に、このScannerクラスがある感じだと思います。書き方としては、

import java.util.Scanner //Scannerクラスをいれる
Scanner scanner = new Scanner(System.in); //Scannerクラスを作成
String line = scanner.nextLine(); //Scannerで読み取る情報の設定
System.out.println(line);//Scannerで読み取った情報への操作など
scanner.close(); //Scannerクラス終了

こんな感じです!ふぅーーー。つかれました。なんでこんなに書かなくちゃいけないのか…と思うと同時に、これで入力を受け付けるようになるのかという驚きがあります。よく覚えとこ。

データ型を変換しよう

Javaだけではないと思いますが、データには「型」があります。色んな型があることで、色んな情報を扱えるんだなーくらいに思うといいかも。そして、そのデータを途中で変換したいときがあるかもしれません。そんなときに、「変換」を使います。

String line = Integer.toString(); //整数を文字に変換
int num = Integer.parseInt(); //文字を整数に変換

他にもありますが、こういう感じで変換するようですね。

文字型配列を整数型に変換するには!

先週、配列の勉強もしていました。その時に、文字型の配列を整数型に変えたいなぁと思っていまして、Integer.parseInt(配列!)みたいにゴンッって入れちゃえばできるんではー?と最初は書きました。

あれ・・・

うまくいかないんですねー。それにちゃんとした変換の方法があったんですね。知りませんでした。じゃあどう書くかといいますと、

String input = scanner.nextLine();
String[] parts = input.split(" ");
int[] num = new int[parts.length];
for (int i = 0; i < parts.length; i++) {
 num[i] = Integer.parseInt(parts[i]);
}

こんな感じかと思います。あくまで一例です。手順としては、

① scannerで読み取る
② 空白で分割して、parts配列に入れる
③ parts配列と同じ長さのnum配列を作る
④ 条件設定
⑤-1 parts配列のそれぞれの要素を、整数型に変換
⑤-2 変換したものを、int配列のそれぞれの要素に入れる

という感じ。そのままInteger.parseInt(parts[i])って、配列そのものに作用すればいいのに…と思います(笑)。まぁ、仕方がありませんね…

ということで、復習でした。同じところで悩んでいる人がいたら、参考になるとうれしいなあと思います。では!


この記事が気に入ったらサポートをしてみませんか?