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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Java

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

Q&A

0回答

729閲覧

コマンドプロンプトで表示されるNoSuchElementExceptionのエラーを解決したい

yuukaMinami

総合スコア5

Java

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

0グッド

1クリップ

投稿2021/06/25 02:55

編集2021/06/25 03:23

前提・実現したいこと

例外処理をなくして、コマンドプロンプトに、読み込んだデータを表示させたい。

エクリプスではしっかりと、例外なく起動できるのですが、コマンドプロンプト上では、以下の例外が起こってしまいます。

WHILEで、次に行があるかどうかを確認していて、なかっ場合、自動でファイルがクローズする、という方法を参考にしています。

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

C:\Users\snk19\Documents>java Kadai02 社員コード:01 氏名:山田花子 支給額:200000 社員コード:02 氏名:佐藤太郎 支給額:205000 社員コード:03 氏名:中野優香 支給額:303000 社員コード:04 氏名:小田正人 支給額:426000 社員コード:05 氏名:村田桃子 支給額:528000 Exception in thread "main" java.util.NoSuchElementException at java.base/java.util.Scanner.throwFor(Scanner.java:937) at java.base/java.util.Scanner.next(Scanner.java:1478) at Kadai02.main(Kadai02.java:25) C:\Users\snk19\Documents>

該当のソースコード

java

1import java.io.File; 2import java.io.FileNotFoundException; 3import java.util.Scanner; 4 5public class Kadai02 6{ 7public static void main(String[] args) 8{ 9//ファイルを読み込む 10File f = new File("C:/Users/snk19/Documents/emo01.txt"); 11//File f = new File("C:/Users/snk19/Documents/emp02.txt"); 12//File f = new File("C:/pleiades/workspace/Kadai02/src/emp02.txt"); 13//File f = new File("emp02.txt"); 14 15//Scannerを使って文字列の読み込みを行う 16try(Scanner sc = new Scanner(f)) 17{ 18//useDelimiterメソッドで区切り文字の指定 19sc.useDelimiter(","); 20 21//hasNextLineで次の行が存在するか確認 22while(sc.hasNextLine()) 23{ 24String empCode = sc.next(); 25String empName = sc.next(); 26String basic = sc.next(); 27int basicPay = Integer.parseInt(basic); 28String family = sc.next(); 29int dependentRelatives = Integer.parseInt(family); 30 31 32 33//int payment = 0; 34 35/*System.out.print("社員コード:"+empCode); 36System.out.print("氏名:"+empName); 37System.out.println("支給額:"+payment); 38//System.out.println("支給額:"+ifReturn()); 39 40System.out.print("社員コード:"+empCode); 41System.out.print("氏名:"+empName); 42System.out.println("支給額:"+a); 43 44System.out.print("社員コード:"+empCode); 45System.out.print("氏名:"+empName); 46System.out.println("支給額:"+b); 47 48System.out.print("社員コード:"+empCode); 49System.out.print("氏名:"+empName); 50System.out.println("支給額:"+c); 51 52System.out.print("社員コード:"+empCode); 53System.out.print("氏名:"+empName); 54System.out.println("支給額:"+d);*/ 55 56switch(dependentRelatives) 57{ 58case 0: 59int payment = basicPay; 60System.out.print(" 社員コード:"+empCode); 61System.out.print(" 氏名:"+empName); 62System.out.println(" 支給額:"+payment); 63//System.out.println("支給額:"+ifReturn()); 64break; 65 66case 1: 67payment = basicPay + 10000; 68int a = payment; 69//payment = basicPay + 10000; 70System.out.print(" 社員コード:"+empCode); 71System.out.print(" 氏名:"+empName); 72System.out.println(" 支給額:"+a); 73//System.out.println(" 支給額:"+payment); 74//System.out.println("支給額:"+ifReturn()); 75break; 76 77case 2: 78payment = basicPay + 5000; 79System.out.print(" 社員コード:"+empCode); 80System.out.print(" 氏名:"+empName); 81System.out.println(" 支給額:"+payment); 82break; 83 84case 3: 85payment = basicPay + 3000; 86System.out.print(" 社員コード:"+empCode); 87System.out.print(" 氏名:"+empName); 88System.out.println(" 支給額:"+payment); 89break; 90 91default: 92if(dependentRelatives >= 4) 93{ 94int total3People = 10000 + 5000 + 3000; 95payment = basicPay + total3People + (dependentRelatives*2000) ; 96System.out.print(" 社員コード:"+empCode); 97System.out.print(" 氏名:"+empName); 98System.out.println(" 支給額:"+payment); 99break; 100} 101sc.nextLine(); 102} 103//次の行へ 104//sc.nextLine(); 105} 106//次の行へ 107//sc.nextLine(); 108} 109catch (FileNotFoundException e) 110{ 111e.printStackTrace(); 112} 113 114} 115 116 117 118} 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

試したこと

・sc.nextLine();の位置が違うのかと思い、コメントアウトしてるところで試してみた

補足情報(FW/ツールのバージョンなど)

読み込んでいるデータ

01,山田花子,200000,0,
02,佐藤太郎,200000,2,
03,中野優香,300000,3,
04,小田正人,400000,4,
05,村田桃子,500000,5,

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

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

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

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

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

m.ts10806

2021/06/25 04:39

https://teratail.com/questions/345845 同じ方ですかね。 Windowsのユーザー名同じですし、「解決しないまま放置して退会した」という印象は簡単に拭えるものではないです。
m.ts10806

2021/06/25 04:56

eclipse使われてるならコードフォーマットくらいはかけましょう。あえてこのように書かない限りはカッコの対応とかenter時にしてくれるはずですが、ここまでずれる理由が不明です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問