質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

817閲覧

Javaで文字列入力ができない

motch_misa_ore

総合スコア15

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2023/01/09 09:54

編集2023/01/09 09:55

質問概要

Javaで、キーボードから文字列を入力できるようにしたいのですができません…
簡易にJavaで実現しているソースコードなどを教えていただけたら幸いです。

実現したいこと

以下のサイトからソースコードを拝借し、VScodeで走らせようとしました。
https://www.sejuku.net/blog/63188
単に入力された文字列を表示するだけのものですが、そのままコピペしたのですがうまく動きません。最初に「キーボードから入力してください」と表示された後なにを打ち込んでも何も起こりません。
ただ、原因特定のためところどころに"check"という文字列をはさんでいます。

もしより簡易にJavaで実現しているソースコードや方法など教えていただけたら幸いです。

発生している問題・エラーメッセージ

[Running] cd "c:\Users\motch\Java\" && javac Inputchar_20230109.java && java Inputchar_20230109 キーボードから入力してください check [Done] exited with code=1 in 15.175 seconds

該当のソースコード

Java

1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4 5public class Inputchar_20230109 { 6 7 public static void main(String[] args) { 8 9 InputStreamReader isr = new InputStreamReader(System.in); 10 BufferedReader br = new BufferedReader(isr); 11 12 System.out.println("キーボードから入力してください"); 13 14 String str = null; 15 try { 16 System.out.println("check"); 17 18 str = br.readLine(); 19 20 System.out.println("check2"); 21 22 br.close(); 23 } catch (IOException e) { 24 e.printStackTrace(); 25 } 26 27 System.out.println("入力された文字は「" + str + "」です"); 28 29 } 30 31}

試したこと

どうやら14行目のString str = null;か、try&catchの条件に問題があるようです。
9,10で宣言されたisr,brに問題があるのかInputStreamReader,BufferedReaderについて調べてみたのですが、どちらも文字列を1字ずつ取り入れる機能が共通で、前者は数値データを文字列データへ変換する機能もあるようです。しかし、自分で調べても恥ずかしながら原因特定できませんでした…

以上よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2023/01/09 10:41 編集

BufferedReader#readLine() は改行が入力されるまで戻って来ません。
motch_misa_ore

2023/01/09 10:44

ありがとうございます。Enterを押しても何も起こらないです…
motch_misa_ore

2023/01/09 12:55

設定でIntegratedTerminalに最初からなっていたのですが、やはり入力できません…
jimbe

2023/01/09 16:15

vscode のバージョン等で違いがあるのかもしれませんね。 試しに、 vscode は使わずにコマンドラインからコンパイル・実行してみては。 それで vscode の問題の問題か切り分けが出来るでしょう。
guest

回答1

0

自己解決

どうやらコードの問題ではなくVSCodeそのものの設定の問題のようです。質問しなおします。

投稿2023/01/09 12:40

motch_misa_ore

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問