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

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

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

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

解決済

javaで指定の行を取り出したい

uuu_
uuu_

総合スコア5

Java

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

1回答

0評価

1クリップ

6189閲覧

投稿2019/12/30 15:10

編集2019/12/30 16:41

初めて質問するので、書き方が違いましたらすみません…

javaで指定の行を取り出したいです。

今できているところは
•csvファイルをJavaに読み込む
•csvファイルの中身は全て数値で、それらを配列に入れ込んだ
•結果をcsvファイルに出力する準備はできている

までで問題の中身なのですが、やりたいこととしては、
自分がコマンドで入力する数字と同じ行を持ってきてcsvファイルに入れ込みたいです。
(2 5 と入力したら2行目と5行目を取り出したいです。)

今書き終わっているところまでを貼ります。
教えて頂けないでしょうか?お願い致します。

java

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.util.Scanner; public class aaa { public static void main(String[] args) { double[][] Data; double[][] kekkaData; String line; int a = 0; int b = 0; int N = 0; int h = 0; int tate = 2443;//csvの列数 int yoko = 2334;//csvの行数         int hosii = 40;//取ってきたい行数の合計 // データ格納 try { File infile = new File("D:\Book3.csv"); BufferedReader br = new BufferedReader(new FileReader(infile)); while ((line = br.readLine()) != null) { N++; } br.close(); } catch (FileNotFoundException e) { System.out.println(e); } catch (IOException e) { System.out.println(e); } Data = new double[tate][yoko]; kekkaData = new double[hosii][yoko]; try { File infile = new File("D:\Book3.csv"); BufferedReader br2 = new BufferedReader(new FileReader(infile)); File outfile = new File("D:\normdist_結果3.csv"); PrintWriter bw = new PrintWriter( new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outfile), "Shift-JIS"))); while ((line = br2.readLine()) != null) { for (b = 0; b < yoko; b++) { String str[] = line.split(",", 0); Data[a][b] = Double.valueOf(str[b]); } a++; } br2.close(); //追加ここから        Scanner scanner=new Scanner(System.in); int v = scanner.nextInt(); System.out.println("抜き出したい行数は?"+v); for (int i = 1; i < tate+1; i++) { if( v == i){ for (int j = 0; j < 1; j++) { System.out.println(kekkaData[i][j] + " , "); bw.write((kekkaData[i][j]) + ","); } System.out.println(); bw.write("\r\n"); } } bw.close(); } catch (FileNotFoundException e) { System.out.println(e); } catch (IOException e) { System.out.println(e); } } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

jimbe

2019/12/30 15:38

コードのご提示には専用の書き方が用意されています. 入力枠の上辺にある <code> を押すと出てくる ``` で囲まれた「コード」という文字列を置き換える形で, コードを書き込み(コピペ)してください. ご質問は編集できます. 入力枠の下にはプレビューも表示されますので, 確認しながら修正してみて頂けますか.
uuu_

2019/12/30 15:47

教えて頂きありがとうございます。書き方を変更いたしました。 もしよろしければ、このJavaについてのご回答を頂けると嬉しいです。お願い致します。
jimbe

2019/12/30 15:48

> 2 5 と入力したら 入力部分がありません. これも作ってくれということでしょうか. > int tate = 2443;//csvの列数 > int yoko = 2334;//csvの行数 行・列数を固定にしていますが, コード内には行数を数えている個所もあります. 行数は固定でしょうか可変でしょうか.
jimbe

2019/12/30 16:08

すいません, コマンドで入力するということは args のことでしょうか.
uuu_

2019/12/30 16:44

行数は固定です。 コマンドに入力するという表記で合っているのかが分からないのですが、「抜き出したい行数は?」と聞いて 2 5 と入力すると2、5行目が抜き出せるようにしたいです。お願いします。 今、追加でimport java.util.Scanner;と Scanner scanner=new Scanner(System.in); int v = scanner.nextInt(); System.out.println("抜き出したい行数は?"+v);を入れてみました。このvと同じ行数を抜き出すようにしたいのですが、このままではうまくいかないのでご教授願います。お願い致します。
jimbe

2019/12/30 16:54

指定は行数では無く行番号ということでよろしいですか. 追加されたコードでは 2 と 5 の二つを入力できませんし, 複数の数値を指定するのならば入力の終わりも指示しなくては, いつまでも指定し続けることになります. その辺りは如何でしょうか.

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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