1日目(2025年1月31日②)<Scanner>



前回記事

https://aki-be-pro-engineer-rec-myroute.com/wp-admin/post.php?post=20&action=edit

の続きです!!

というか、見返すと1日目にめちゃめちゃ気合入れて多くのことをやったなって感じです、、
一気にやるのはいいけど、振り返ると理解度が低い部分があるなって感じです、、


ではいきます!!



【Scanner】

Tim先生の自動翻訳によると、
Scannerとは、
「テキスト、数字、文字列などを取得できるようにする」
「ユーザーから情報を受け取り、その入力に基づいて何かを実行する」

とのことですが、やっぱり自動翻訳だとちょっと分かりにくい、、
ここにきて英語を勉強してこなかったことを後悔するとは、、、
(この時はまだAI先生に頼ってなかったし、解説してくれている記事とか見てもいまいちピンとこなかった、、、)


そんな後悔をしながら進んでいったわけですが、やっているうちに何となく分かったような感じです。
ただ、使いこなせるかというと「?」なので、復習を兼ねてこの記事を書きます。



1日目に学んだ時点ではこんな感じですが、ちょっと復習も兼ねて追記します!!

(AI先生より)

キーボードからデータを入力したい時(ユーザーに名前を尋ねたり、年齢を入力してもらったり)に役に立つのがScanner機能!!

目的:
キーボードやファイルなどの入力ソースから、データを読み込むための機能。
これを使うことで、ユーザーからの入力を受け取ったり、ファイルのデータを読み込んだりすることができる。

使用するメソッド:
nextint() 整数の入力を読み込む
nextDouble 小数を読み込む
nextLine() 一行全体を文字列として読み取る
next() 次の単語を文字列として読み取る
close() 使用したScannerを閉じて、リソースを解放する

現段階(2月10日)では使いこなせるレベルではないし、close()とか初めて見たし、そんな感じですが、よりScannerについて理解が深まった気がします!!

↓↓↓↓↓↓
これより下は、1日目のノートを見ながらの復習となります!!


<ステップ1>Scanner機能を使えるようにする

Scanner機能を使うには、クラス内にインポートする必要があるみたいです。
なんか勝手に入ってくれてた記憶がありますが、Scannerを入力すると、赤色の下線が出現し、クリックすることでインポートできる感じでした!!

<ステップ2>Scannerオブジェクトを作成

Scanner sc = new Scanner(System.in);

System.in ⇒ 標準入力を表す。キーボードからの入力をScannerで扱えるようにする。

<ステップ3>キーボードに入力された内容を読み込む

String scanned = sc.next();

キーボードから入力された単語を読み込む。
sc.next()を使用して、読み込んだ単語を変数「scanned」に格納する。

<ステップ4> 変数に格納した入力内容をプリントアウトする

System.out.println(scanned);

<ステップ5>実行して正常に機能しているか確認

コンソール画面に直接文字を入力して、入力した文字の下に同じ文字が表示されたらOK

(コンソール画面)
タワーブリッジ ← キーボードから直接入力
タワーブリッジ ← Scan機能により自動で出力された

もう一度、実行ボタンを押すと、コンソール画面は空白に戻る

<注意ポイント>

上に書いてある
String scanned = sc.next();

という箇所を、

int scanned = sc.next();

にするとエラーとなる。
これは、int(整数)は、sc.next() (文字列)に変換できないからだとのこと。
なので、、、

int scanned = sc.nextint();

にする必要があるみたいです。

うーん、、、
覚えることが多いですな、、、

【色んな型と組み合わせる】


<ブール値>

Scanner sc = new Scanner(System.in);
boolean scanned = sc.nextBoolean();

入力した内容が、定義した条件に合っているか間違っているかを
「true」「false」
で返すやつですね!!

キーボードから入力された内容をスキャンして、scannedに格納するメソッドで、
新しいのが出てきましたね、、

nextBoolean、、、
bは大文字なんやね、、
この大文字・小文字がややこしい、、

<double>

小数点を返す場合は、、、

Scanner sc = new Scanner(System.in);
double scanned = sc.nextDouble();

これも、大文字・小文字がややこしい!!

まあ、使っていったら覚えるか!!

<Integer.parseInt()>

またまた難しそうなのが出てきた、、

Integer.parseInt()、、、
Tim先生の発音を聞いていると、
「インタガー.パルスイント」
って聞こえます。

どうやら、文字列を整数に変換したい時に使うメソッドのようです。

String scanned = sc.next();
String scanned = sc.next();

文字列を整数に変換したい!!
int x = scanned;
「整数xは、scannedに等しい!」と宣言
(この行は無くてもオッケーだった)

int x = Integer.parseInt(scanned);

これで、文字列を整数に変換できるようになった!!

Scanner sc = new Scanner(System.in);
String scanned= sc.next();
int x = Integer.parseInt(scanned);

System.out.println(x + 5);

コンソールに3と入力したら、8と返ってきた!!


うん、確実に忘れるやつやね。
実際にこの記事を書いている2月10日の時点で忘れてました。

あと、Integer.parseInt()が、文字列を整数に変えれることは分かったけど、、
これどういう場面で使うの??

これも含めて、もう一回勉強し直しかな!!


1日目の内容は、まだあるのですが、キリが良いのでこの記事はここまでとします。

続きはVer.3で書きます!!

ではでは!!


コメントを残す