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

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

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

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

Q&A

解決済

1回答

953閲覧

【Java】textfile読み込み 大学の宿題

usa

総合スコア5

Java

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

0グッド

0クリップ

投稿2017/12/06 05:54

Javaで以下の様な二列の数字を他のテキストファイルから別々に読み込み表示したいです。

484954 2814
1036451 3630
1006577 3805
828170 2781
497471 3201
.
.
.
.
.

###発生している問題

以下のように二列の数字が足されて出てきます

File opend 487768 1040081 1010382 830951 500672 749776 . . . . .

初心者なので見よう見まねで書いたのですがよくわかりません。

###コード

package

1 2import java.io.File; 3import java.io.FileNotFoundException; 4import java.util.Scanner; 5 6public class Housing0PE { 7 8 public static void main(String[]arg) { 9 10 // read in the data 11 int priceHome[] = new int[100]; 12 int rpm[] = new int[100]; 13 14 File file = new File ("housingPriceAndRent.txt"); 15 Scanner input = null; 16 17 try { 18 input = new Scanner(file); 19 } catch (FileNotFoundException e) { 20 // file Not found 21 System.out.println("File not found"); 22 e.printStackTrace(); 23 System.exit(0); 24 } 25 26 System.out.println("File opend"); 27 28 int count = 0; 29 while(input.hasNextInt()){ 30 priceHome[count] = input.nextInt(); 31 rpm[count] = input.nextInt(); 32 count++; 33 34 }//end while 35 36 for(int i = 0; i < priceHome.length; i++) { 37 System.out.println(priceHome[i]+rpm[i]); 38 } 39 }//end main 40}//end class 41

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

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

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

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

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

masaya_ohashi

2017/12/06 06:00

合計が出てしまっている、というのはミスだとすると、本来はどのように表示されることを望んでいますか?
usa

2017/12/06 06:21

元のテキストの状態と同じように二列で表示したいです
guest

回答1

0

ベストアンサー

なぜというなら、

Java

1 for(int i = 0; i < priceHome.length; i++) { 2 System.out.println(priceHome[i]+rpm[i]); 3 }

と、int[] の priceHome と int[] のrpm のそれぞれの値を加算してるからです。

文字列として表示するなら、String.Format でも使ってきちんと整形してやりましょう。

投稿2017/12/06 06:27

tacsheaven

総合スコア13703

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

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

usa

2017/12/06 06:34

ありがとうございます。勉強になりました。
usa

2017/12/06 06:42

似た問題のコードではint[]とstring[]だったので同じように+にしてしまっていました。確かに両方とも値の場合は+だと加算されてしまいますね。間に+\t+をいれました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問