• ベストアンサー

テキストから特定の行の値取得方法

こんにちは、 abc.txtを読み込んで、 ランダムで選ばれば数字の行の値を取得したいのですが どのように記述すればよいでしょうか? 例、abc.txtが5行あったとして、 ランダム数(txtの行数内で抽選)で3が出た場合 小吉を取得したい。 abc.txt----------------- 大吉 中吉 小吉 その他  ・  ・

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

全行取得して配列等に記憶し、該当する添字でアクセスする、というのはどうでしょうか

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

abc.txt を読み込む -> Files#readAllLines(パス, 文字コード) 行数を得る -> List<String>#size() ランダム数を決める -> Random#nextInt(行数) 一行分だけ取得 -> List<String>#get(ランダム数) (参考) http://docs.oracle.com/javase/jp/7/api/java/nio/file/Files.html http://docs.oracle.com/javase/jp/7/api/java/util/List.html http://docs.oracle.com/javase/jp/7/api/java/util/Random.html

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • セルの値が同じ行を条件に従って行削除するマクロ

    A~E列までデータがあり 行数は約30,000行あります。 A列は半角英数字と-で桁数は11桁又は14桁です。 数字のみもあれば数字と英字の組み合わせもあります。 (英字はどこの桁にあるか何個あるかは不規則です) 例 ABCD123456789X 124345678901234 55555-55555 ABC12345DEF678 E列には半角の 1 か 2 しかありません。 A列が同じ値の行を検出して重複している行は1行だけ残して 後は行削除をしたいです。 行削除はE列の値によって判定したいです。 重複行は1つの値に対して何行あるか不明です。 30,000行のうち、重複行を削除すると10,000行くらいになる予定です。 (1)重複行にてE列の値が1だけの場合    どれでもいいので1行残して残りは行削除 (2)重複行にてE列の値が2だけの場合   どれでもいいので1行残して残りは行削除 (3)重複行にてE列の値が1も2もある場合   E列の値が2の行をどれでもいいので1行残して残りは削除 例 (1) 1234567890XXXX-1 1234567890XXXX-1 1234567890XXXX-1 ↓ 1234567890XXXX-1 (2) 123ABCDE901234-2 123ABCDE901234-2 ↓ 123ABCDE901234-2 (3) 12345678901234-1 12345678901234-2 ↓ 12345678901234-2 ABC45678901234-1 ABC45678901234-2 ABC45678901234-1 ABC45678901234-2 ↓ ABC45678901234-2 手作業では5時間かかりましたがミスだらけです。 まだ数ファイル残っており手作業では厳しいのでマクロを 作成したいのですが、どう記述していのかまったく検討が付きません。 どうかよろしくお願いします。

  • 【C言語】テキスト読み込みの行変更

    教えて下さい。 テキストファイルから読み込む際の行変更の上手いやり方が分かりません。 今回C言語、コンソールでテキストファイルから1行ずつ読み込み表示させようと思っています。 その際ランダムで得た数値を行数とし、ズらした行の一文を表示させたいです。 例)ランダムで得た値=2、表示させたい文=2行目 添付した画像だと文字数(バイト数)が固定なのでfseekの第二引数は楽なのですが、使用したいテキストファイルはバイト数がバラバラ(半角、全角ごちゃ混ぜ)なのでfseekの第二引数も文によっては変わってしまい、どのように変えていけば良いかが分かりません。 教えて下さい。

  • txtファイルから値の取得方法 [C言語]

    main関数内で使用する変数にtxtファイルから値を読み取り、それを代入する方法を探しております。 以下のようなシステムを製作したいと考えております。 (1)main内で定義した変数 int abc,bcd,cde; (2)hoge.txtの内容が /* txtファイルの中 */ abc 100 bcd 150 cde 200 /* --------------- */ というように記述 (3)mainでhoge.txt内の文字列"abc"を検索し、その後ろにある値100をabcに代入。次に"bcd"を検索し・・・というふうに値を代入していきたいと考えております。 まだ、C言語入門者なので説明不足な点もあるかと思いますが、よろしくお願いします。

  • 複数のテキストボックスの値の取得について

    複数のテキストボックスの値、取得に関して質問させて下さい。 画面に20個のテキストボックスが存在し、 それぞれ id に txt0 ~ txt19を設定しています。 (javascriptにてループで作ってます) for(ii=0; ii<20; ii++){ (略) document.write("<input id='txt" + ii + "' type='text' />"); (略) } 登録ボタン押下後に、上記20個のテキストボックスの値を取得し、 特定の文字だった場合のみ処理を行います。 この処理もループで行いたいのですが、 変数名 txt'i'.value  の 'i'の部分だけを変更したいのです。(iは 0~19) 変数名の一部を変数にすることは可能でしょうか? 配列にできれば話は簡単なのですが・・・配列にできるでしょうか? with (document.form1) { for(ii=0; ii<20; ii++){ (略) tempTxt = txt0.value; ←右辺の値をiiの値と共に txt0.value から txt19.value に変化させたい。 (略)            ("txt" + ii + ".value" では文字列になってしまい・・) if(tempTxt == "ABC"){ (略) } } } 別の手段でもかまわないのですが、何かよい方法が ありましたら、ご回答お願いします。

  • Excel 任意の列の特定の行のみ値の取得

    書籍とサイトで教えていただいた説明などを見ながら、ExcelのVBAでセル内のデータの操作について勉強中ですが、タイトルのようなことをやる場合のオブジェクト式の選び方がわかりません。 よろしくお願いします。 例えば図のようなデータが入った"Sheet1"があり、行数、列数は様々なのですが、やりたいことは ・A列にエラーコード(ここでは"9999"または特定文字列)、空行、0が入っている行(ピンク色がついたセルのある行)は無視する。 ・任意の列がコピー元(ここでは「A列=コード」「B列=商品名」「E列=価格」で、上記に該当しないセルが対象 ・そのセルの値のみ取得し、"Sheet2"のA~C列に上から順に(上詰めで)「値」のみをはりつけたい Dim i As Long Worksheets("Sheet1").Select Rows(1).Copy Worksheets("Sheet2").Range("A1") For i = 2 To Range("A65536").End(xlUp).Row If Cells(i, "A") = 9999 And IsNumeric(Range("A" & i)) Then この記述ではこのデータ操作ではエラーを変えすのですが、 根本的な「任意の列の特定の行のみの値の取得(と他シートへの複写)」の概念がわかっていません。 正しく動作する記述において、なぜそのオブジェクト式を採用するのかも含めて教えていただければと思います。 よろしくお願いします。

  • バッチでテキストファイルから任意の行のみ取得したい

    batファイルを作成していて、 txtから特定の行のみをとりだし、変数に入れたいです。 どうもよくわからないので質問したいと思います。 まず以下の様なテキストファイルがあります。 ------------------- 111 222 333 ------------------- 実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。 行いたい動作は、 ----------------------------------------- 1.テキストファイルの1行目を変数Textに入れる(set Text=111) 2.変数Textを使用し色々処理をする 3.テキストファイルの2行目を変数Textに入れる(set Text=222) 4.変数Textを使用し色々処理をする ----------------------------------------- コレを繰り返します。 2と4は同じ動作ですので、行数のカウンタを設定しループさせる予定です。 n行目を全て取り出す方法がわかれば行けると思うのですが、 どうも見つかりません。ご存知の方がいればお教え願いたいと思います。

  • DataGridViewで、選択した行の値を取得したい。

    VB2005環境です。 VB2005で、選択した行の、特定の列から値を取って、 テキストボックスに出力したいと思っています。 Itemプロパティかと思い、 TxtBox1.Text = Me.DataGridView1.Item _(0,Me.DataGridView1.CurrentRow.Index).ToString と記述してみました。1列目の、選択した行と交わるセルの 値が取れるかと思いきや、うまく取得できません。 方法を教えていただけないでしょうか? よろしくお願いします。

  • テキストファイル用いて、ページジングを行い、条件にマッチしないものは飛ばす。

    phpの初心者です。 abc.txtを読みませて、ある条件のものだけ抽出して ページジングを行いたいのです。 abc.txt------------------------- 20050225,001,パソコン,102000,1 20050225,002,モニター,4000,0 20050225,003,マウス,2100,1 -------------------------------- 私の考えでは、まずテキストファイルを読み込ませ、 array_pushにて配列に入れて、行数を取得して、 行数からページングを行いたいのです。条件に あった行数を取得するような関数があると思いますが、 わかりません。ご指導いただけないでしょうか また、他の方法があるのでしたら、教えていただけると 幸いです。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 複数のテキストファイル内の複数行を一括して削除

    同一のフォルダにある複数のテキストファイルに対して ************ と ************ で囲まれた部分(複数行)を一括して削除できる方法はありますでしょうか。 ************ と ************ で囲まれた部分は、行数も内容も同じではありません。 例1: ************ 123 abc ************ 例2: ************ あいうえ かきくけ 123 abc ************

  • エクセル。あるセルに入っている値と同じ番号の行に

    A列に、1から3万くらいまでの大きさの連続しない値が入っているとします。 行数は1000行くらいです。 この数字のデータを、そのセルに入っている値と同じ番号の行に入れたいのです。 たとえばA列に上から、1、5、13、、、という数字が入っている場合、 A1に1、その後空白、A5に5、その後空白、A13に13、という具合です。 どのようにすれば良いでしょうか。 本当はA列以外に10列に値が入っていまして、 これらもA列の数字と一緒に移動させたいと思っています。 こういった場合に適用できる方法をお教え願えたら嬉しいです。 よろしくお願いいたします。

このQ&Aのポイント
  • 最近金縛りに会う夢を頻繁に見ます。夢の内容は目が開けられず、黒い粒子が浮かんでくる状態。時間が経つと目が開けられるようになります。その後、白い顔が浮かんでくる、耳鳴りに苦しむ、母がゾンビのような姿で現れる、背中を強く叩かれるなどのパターンがあります。
  • この夢を見る前には他の夢を見ることもありますが、必ずこの夢に辿り着きます。疲れは感じていないが、毎日この夢を見て困っています。
  • 改善策としては、日常生活でのストレスの軽減やリラックス法の実践、睡眠環境の改善などがあります。また、夢の内容を意識してポジティブなイメージを持つことや、夢日記をつけることも効果的です。
回答を見る