こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

for分等を使用したインクリメント演算

for分等を使用して
最終行まで連続番号を生成したいのですが
うまくいきません。
例えば下記のように
int i;
for (i = 1; i < 6; i++)
System.out.print( + i );


  }
}
と記述すると
結果
12345となるのですが
最終行までループさせる方法がわかりません。
本来やりたい答えはカンマ区切りで最終行まで
連続番号を生成させたいのですが
どなたかご教授ください。
どうぞよろしくおねがいします。
1,
2,
3,
4,
5,

投稿日時 - 2012-05-28 20:39:20

QNo.7501642

すぐに回答ほしいです

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

> 質問内容が変わってきてますが

本当ですね。
まあ、毒を喰らわば皿まで、です。
でもあんまり逸脱するようなら、このQ&Aは締めて、
新たに質問してくださいね。


***

> エラーが出てメソッドが用意出来なくなりました。

どういうエラーが出ているか教えてくださいと
書いたはずですが、それについてのお答えはないんですか?
言葉が足りなかったですか?
「どういうエラーが出ているか教えてください」というのは
なんというエラーメッセージが出ているか教えてください
という意味です。

ま、エラーの原因はわかったので今回はいいですが。


(前略)
> private static int[] シリアル番号;
> private static int[] セキュリティコード;
(中略)
> String[] tmp = new String[2];{
>
> tmp[0] = "セキュリティコード";
> tmp[1] = "シリアル番号";
> ((PrintStream) out).println(i+","+セキュリティコード[0]+","+シリアル番号[1]);

えっとですねえ、
・セキュリティコード[]
・シリアル番号[]
は、宣言されていますけど、具体的な値をセットしている文が
どこにもありませんよね?
配列に値が入っていないので、
・セキュリティコード[0]
とか
・シリアル番号[1]
とか指定しても、
・配列「セキュリティコード」には、0番目の要素が入ってないですよ~
・配列「シリアル番号」には、1番目の要素が入ってないですよ~
っていうエラーが出るんです。

上で、tmp[0],tmp[1]に値を入れているのに、なんでそれを使わないんですか?
もっと言うと、配列「tmp」を使う意味は全くなくて、普通は、
((PrintStream) out).println(i+",セキュリティコード,シリアル番号");
と書くと思います。

ところで、このprintlnの結果出力されるのは、データ全体のヘッダ行
"0,セキュリティコード,シリアル番号"
になりますが、先頭の文字は"0"でいいんですか?
普通は、"No."とか入れるところだと思うんですが。

あと、ファイルに出力するのは文字列なので、配列
・シリアル番号
・セキュリティコード
はint型じゃなくてString型で宣言したほうがいいです。
対応するメソッドの中でその数値を使って計算とかするなら別ですが。

投稿日時 - 2012-06-01 11:37:59

お礼

>private static int[] シリアル番号;
> private static int[] セキュリティコード;
を消すの忘れていました。
課題だった連続番号が生成出来たので
今までの
アドバイスを参考にして
改めてご質問する形にいたします。
どうもありがとうございました。

投稿日時 - 2012-06-01 12:28:47

ANo.10

このQ&Aは役に立ちましたか?

11人が「このQ&Aが役に立った」と投票しています

回答(10)

ANo.9

あのー、また、おっしゃってる意味がわからないです。
質問者さん独自の言葉を使わないで、共通語を使ってください。
単語の意味が分からないのに無理にその単語を使わないでください。


> 各メソッドvoidから
> セルごとの開発環境が必要になってくるのです。
> 例えば各メソッドの数値を全角にプログラムを組んだりだとか。

「メソッド」「void」「開発環境」という単語の意味は分かってますか?
この文章はこういう意味↓でしょうか?

: 各メソッド内で
: セルごとの操作を行う必要があるのです。
: 例えばあるメソッドでは、対応するセルの数値を全角に変換するとか。

> に変更した場合の
> void セキュリティコード[0],out
> out.print();をどう設定すればいいのか分からないので

この文章はこういう意味↓でしょうか?

: に変更した場合の
: void セキュリティコード[0],out
: out.print();をどこにどう記述すればよいか分からないので


「: 」で始まる文章の意味は分かりますか?

***

とりあえずまあ、私なりに、書いていただいたことを解釈しますと、

・入力ファイルの1レコードの要素数は50になったり700になったりする
・入力ファイルの1レコード中の各要素に対して1つずつメソッドを用意する

となりますが、合っていますか?


ところで、例えば入力ファイルAがあって1レコードの要素数が50だった場合、
入力ファイルの1レコードは
要素1,要素2,要素3,…,要素49,要素50
となりますよね?
そして、入力ファイルBがあって1レコードの要素数が700だった場合、
入力ファイルの1レコードは
要素1,要素2,要素3,…,要素49,要素50,…,要素699,要素700
となりますよね?

入力ファイルがどちらであっても、
・要素1に対する操作を行うのはメソッド1
・要素2に対する操作を行うのはメソッド2

・要素50に対する操作を行うのはメソッド50
になるという認識で合ってますか?

もし、
・入力ファイルAなら要素1に対する操作を行うのはメソッドA
・入力ファイルAなら要素2に対する操作を行うのはメソッドB
ということであれば、プログラムは別になります。
もちろん1つのプログラムに書こうと思えば書けますが、
冗長ですし、意味がありません。

ここまでの認識は合っていますか?

***

ところで、
> に変更した場合の
> void セキュリティコード[0],out
> out.print();をどう設定すればいいのか分からないので
> エラーが出まくりになってます。

一体、どういうコードを書かれて、どういうエラーが出まくっているのか
教えていただかないと、問題点を指摘することができません。

投稿日時 - 2012-05-31 16:55:53

補足

分かりにくいご質問内容で大変申し訳ございません。
nao-yさんのご認識通りで合ってます。

下記のソース内容の4行を除けば
連続番号を加えたテキスト入出力が付加出来たのですが

String[] tmp = new String[2];{


tmp[0] = "セキュリティコード";
tmp[1] = "シリアル番号";

out.println(セキュリティコード[0]+","+シリアル番号[1]);
と2つの文字列として宣言した配列を
入力ファイルの1レコード中の各要素に対して1つずつメソッドを用意したいのですが
out.println(セキュリティコード[0]+","+シリアル番号[1]);時点で
エラーが出てメソッドが用意出来なくなりました。
質問内容が変わってきてますが
どうかアドバイスよろしくお願いいたします。




import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;

public class HelloWorld {
private static String inFileName = "C:\\Source\\test\\src\\test_in.txt";
private static String outFileName = "C:\\Source\\test\\src\\test_out.txt";
/* Shift_JIS, ISP-2022-JP, EUC-JP Windows-31J */
/* 出力時に JISAutoDetect の指定は不可 */
private static String outFileCoding = "UTF-8";
private static Object out;
private static int[] シリアル番号;
private static int[] セキュリティコード;

/* テキストファイルの読み出しと書き込みのサンプルプログラム */
/* (注)バイナリファイルのときは,DataInputStream, DataOutputStream */
public static void main(String[] args) {
try{
String line;
int i = 0;
BufferedReader buf =
new BufferedReader( new InputStreamReader( new FileInputStream("C:\\Source\\Source_Stream\\src\\test_in.txt"), "UTF-8" ) );
/* ファイルが存在しない場合には新たに作成.存在する場合には上書き */
BufferedWriter outFile =
new BufferedWriter( new OutputStreamWriter( new FileOutputStream("C:\\Source\\Source_Stream\\src\\test_out.txt"), outFileCoding ) );



String[] tmp = new String[2];{


tmp[0] = "セキュリティコード";
tmp[1] = "シリアル番号";


((PrintStream) out).println(i+","+セキュリティコード[0]+","+シリアル番号[1]);






}
while( (line=buf.readLine()) != null ) {
StringBuffer out = new StringBuffer();
i++;
out.append(Integer.toString(i));
out.append(",");
out.append(line);
outFile.write(out.toString());
outFile.newLine();
System.out.println(out);
}



buf.close();
outFile.flush();
outFile.close();
}
catch(IOException e) {
e.printStackTrace();
System.exit(1);
}

}


}

投稿日時 - 2012-05-31 22:52:41

ANo.8

> 読み込んだバッファ⇒BufferReader?
> 行数取得メソッド⇒?
> はなにを記述すればよいのでしょうか?

ああ、すみません、BufferReaderクラスにファイル行数取得メソッドが
あるものと勘違いしていました。申し訳ありません。

ループの記述は、既に書かれている通りの

while( (line=buf.readLine()) != null )

が最適だと訂正いたします。


> アドバイスいただいた構文をソース
> for (i = 1; i <= 行数; i++)
> out.println(i+","+セキュリティコード[i]+","+シリアル番号[i]);
> を加えたとして
>
> サンプル(少し変えてます)にあるような
> セキュリティーコード(tmp[0], out);
> out.print(",");
>
> シリアル番号(tmp[1out);
> out.println(",");

> 出力データに対して用意してある
> 各メソッドのソースは
>
> void セキュリティーコード(String セキュリティーコード(, PrintWriter out) {
> out.print(セキュリティーコード);

> void シリアル番号(String シリアル番号(, PrintWriter out) {
> out.print(シリアル番号);
> どうすればよいのでしょうか??

おっしゃる通りにコーディングされればよいかと思います。
ですが、
out.println(i+","+セキュリティコード[i]+","+シリアル番号[i]);
と1行で済むところを、そんなにたくさんの行数を使って書く
メリットがわかりません。


なお、補足説明しますと
for (i = 1; i <= 行数; i++)
out.println(i+","+セキュリティコード[i]+","+シリアル番号[i]);
は、以下の手順でセキュリティコード・シリアル番号を取得している
という前提です。
また、セキュリティコード[]、シリアル番号[]はString型の配列変数とします。
入力ファイルの1レコードは「セキュリティコード,シリアル番号」
と記述されているものとする

0. i=0;
1.ファイルからレコードを1行読み出して、それがnullでない限り以下の
 処理を繰り返す。
 1-1. i++;
 1-2. 読み出したレコードのカンマ(",")より前を、セキュリティコード[i]にセットする
 1-3. 読み出したレコードのカンマ(",")より後を、シリアル番号[i]にセットする
2. 行数=i;


ですが、既に書かれているようなコード(以下の手順)になされば、
セキュリティコード[]、シリアル番号[]を準備する必要はありませんし、
最大行数を求める必要もありませんね。

0. i=0;
1.ファイルからレコードを1行読み出して、それがnullでない限り以下の
 処理を繰り返す。
 1-1. i++;
 1-2. 出力ファイルに(i+","+読み出したレコード)と出力する。

投稿日時 - 2012-05-31 10:32:06

補足

ていねいなご説明ありがとうございます。
>out.println(i+","+セキュリティコード[i]+","+シリアル番号[i]);
と1行で済むところを、そんなにたくさんの行数を使って書く
メリットがわかりません。
これはサンプルとして考えて提示したもので
細かく説明してませんが仕様によってはエクセルでいうAセルBセルが50セルぐらいになる場合も
あるので1行にするのは非常に厳しいし分かりにくくなると思います。

>ですが、既に書かれているようなコード(以下の手順)になされば、
セキュリティコード[]、シリアル番号[]を準備する必要はありませんし、
最大行数を求める必要もありませんね。

それとこちらも細かく説明しておりませんでしたが
エクセルでいうAセルBセルのデータに対して
各メソッドvoidから
セルごとの開発環境が必要になってくるのです。
例えば各メソッドの数値を全角にプログラムを組んだりだとか。
ですので個々に
Stringで宣言した配列(セル)に対して
書きだすための
void セキュリティコード[0],out
out.print();が必要になってくると思うのですが
アドバイス頂いた
0. i=0;
1.ファイルからレコードを1行読み出して、それがnullでない限り以下の
 処理を繰り返す。
 1-1. i++;
 1-2. 出力ファイルに(i+","+読み出したレコード)と出力する。
に変更した場合の
void セキュリティコード[0],out
out.print();をどう設定すればいいのか分からないので
エラーが出まくりになってます。

投稿日時 - 2012-05-31 11:28:13

お礼

因みに
エクセルでいうAセルBセルの配列が
700セルの場合もございます。
println(i+","+読み出したレコード)で
よりは
セキュリティーコード(tmp[0], out);
out.print(",");
といった書き方にi++を加えて
なおかつ
宣言した配列を
各メッソドvoidから管理したいのです。

投稿日時 - 2012-05-31 14:54:29

ANo.7

あーまた、おっしゃってる意味が分かりづらいんですが。。。

> 下記の
> ソースから
> 連続番号を生成できるソースだけを抜き出したいのですが
> 可能でしょうか?

「抜き出す」って、こういう意味↓じゃないんですよね?

--from-------
while( (line=buf.readLine()) != null ) {
i++;
}
--to---------
(余談ですが、ループの中で毎回newを行っていると
メモリが足りなくなることがありますよ。)

連続番号を生成するコードを抜き出して、
サブルーチンにしたいってことですかね?
サブルーチンにするにしたって、
・引数に現在の番号を渡して、それに1を足した値を返す
だけのことですよね。

i++;
と1行だけ書けば済むところを、
static int serealNo(int sno){
serealNo = sno + 1;
}
とか3行以上書くなんて無駄だと思いますが。
違うんですかね?

私の解釈がまちがっているのでしょうか?
もう少し具体的に、わかりやすく(例えば仕事のできない部下に
説明するようなつもりで)書いてください。

投稿日時 - 2012-05-30 14:19:06

補足

お手数をおかけします。
分かりやすく説明する自信がないので
質問を変えさせていただきます。
アドバイスいただいた構文をソース
for (i = 1; i <= 行数; i++)
out.println(i+","+セキュリティコード[i]+","+シリアル番号[i]);
を加えたとして

サンプル(少し変えてます)にあるような
セキュリティーコード(tmp[0], out);
out.print(",");

シリアル番号(tmp[1out);
out.println(",");

出力データに対して用意してある
各メソッドのソースは

void セキュリティーコード(String セキュリティーコード(, PrintWriter out) {
out.print(セキュリティーコード);

void シリアル番号(String シリアル番号(, PrintWriter out) {
out.print(シリアル番号);
どうすればよいのでしょうか??

投稿日時 - 2012-05-30 23:42:06

お礼

正:
> 最終行の数値はプログラムを実行するたびに変わりますが、
> 1度決めた条件文を書き換えたくないのです。

ということですよね???

それでしたら可能ですし、やはりfor文が良いと思います。
BufferReaderクラスを使うなら、ファイルの内容をバッファに読み込んだ後、
BufferReaderクラスのメソッドで行数を取得できますよね。

こちらのfor文の条件文を使用した場合

for (i = 1; i <= 読み込んだバッファ.行数取得メソッド; i++)

と書かれればよいかと思います。

とありましたが
読み込んだバッファ⇒BufferReader?
行数取得メソッド⇒?
はなにを記述すればよいのでしょうか?
お手数おかけいたします。

投稿日時 - 2012-05-31 08:13:41

ANo.6

ははあ、なるほどね。やっとおっしゃりたいことが判りました。

つまり、Excelで言うとA1→A2→…A6→B1→B2…の順でデータを出力したい
というわけですね。

それは無理です。

ファイル出力は基本的に、テキストエディタと同様に、
入力した文字は行方向へ張り付いて行き、改行を入れると次の行へ進みます。
テキストエディタと異なることは、
一度入力した場所にカーソルを戻すことができない、
右方向か次の行頭へしか進めない、
ということです。
(本当はやり方があるわけですが、高度になるので省略します)

ですので、ファイルの1行に
“連続番号、セキュリティコード、シリアル番号”
と書きたければ、

for (i = 1; i <= 行数; i++)
out.println(i+","+セキュリティコード[i]+","+シリアル番号[i]);

と、1行分をprintlnで書き出すのを行数分繰り返すことになります。


> と上記のようなサンプルにBufferedReaderでCSV入出力してますが

あー、また、今までに出てこなかったKeywordが。。。
つまり、入力CSVファイルがあるのですね。
で、その入力ファイルのレコード件数が一定ではなくて、
読み込むたびに変わる可能性があるということですね。

でしたら、以下の文章は書き方が間違っています。

誤:
> 入力してあるレコードの最終行まで
> 1レコード目から最終行まで
> その1度決めた条件文で
> 判定したいというイメージです。

正:
> 最終行の数値はプログラムを実行するたびに変わりますが、
> 1度決めた条件文を書き換えたくないのです。

ということですよね???

それでしたら可能ですし、やはりfor文が良いと思います。
BufferReaderクラスを使うなら、ファイルの内容をバッファに読み込んだ後、
BufferReaderクラスのメソッドで行数を取得できますよね。

for文の条件文を

for (i = 1; i <= 読み込んだバッファ.行数取得メソッド; i++)

と書かれればよいかと思います。

また理解が間違ってるところがあればご指摘ください。

投稿日時 - 2012-05-29 21:02:54

補足

なるほど。
各メソッドごとから生成できないということが
分かっただけでも勉強になりました。
現在、アドバイス通り変更しているのですが
簡単にはいってません。
時間が必要です。
下記の
ソースから
連続番号を生成できるソースだけを抜き出したいのですが
可能でしょうか?

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;

public class HelloWorld {
private static String inFileName = "C:\\";
private static String outFileName = "C:\\";
/* Shift_JIS, ISP-2022-JP, EUC-JP Windows-31J */
/* 出力時に JISAutoDetect の指定は不可 */
private static String outFileCoding = "UTF-8";
private static Object out;

/* テキストファイルの読み出しと書き込みのサンプルプログラム */
/* (注)バイナリファイルのときは,DataInputStream, DataOutputStream */
public static void main(String[] args) {
try{
String line;
int i = 0;
BufferedReader buf =
new BufferedReader( new InputStreamReader( new FileInputStream("C:\\"), "UTF-8" ) );
/* ファイルが存在しない場合には新たに作成.存在する場合には上書き */
BufferedWriter outFile =
new BufferedWriter( new OutputStreamWriter( new FileOutputStream("C:\\"), outFileCoding ) );

while( (line=buf.readLine()) != null ) {
StringBuffer out = new StringBuffer();
i++;
out.append(Integer.toString(i));
out.append(",");
out.append(line);
outFile.write(out.toString());
outFile.newLine();
System.out.println(out);
}





buf.close();
outFile.flush();
outFile.close();
}
catch(IOException e) {
e.printStackTrace();
System.exit(1);
}

}}

投稿日時 - 2012-05-30 09:45:28

ANo.5

うーーーん、なんて壮大な後出し(笑)
そういうことがおっしゃりたかったなんて
質問文や補足からは全く汲み取れません。

#4さんと全く同意見で、験してみて上手くいかなかった
ソースコードを見せていただきたいです。

ちなみに、
> 最終行まで自動でループできる方法がありましたら
> お聞きしたかったのです。
ですが、、、
「自動でループ」って、for文だって自動でループするわけですが(笑)
そうじゃなくて、for文みたいにカウントアップしないで、
他の条件文でループ終了条件を判定なさりたいってことですかね。
でも、配列を使うので配列の要素数が分かっている場合は、
while文やdo~while文やよりも、for文が最適だと思います。

そうじゃなくて例えば、ファイルから1行ずつデータを読み込む場合は、
大抵ファイルにデータが何行あるかわからないので、そういう場合は
while文やdo~while文が適しています。

投稿日時 - 2012-05-29 14:21:09

補足

いちから説明するとかなり
ややこしくなると思ったので
連続番号作成のアイデアだけ参考に
してあとはなんとかなるという考えが
甘かったようです。
大変失礼いたしました。
サンプルソースコードを作成いたします。
しばらくおまちください。

投稿日時 - 2012-05-29 17:19:50

お礼

>自動でループ」って、for文だって自動でループするわけですが(笑)
>そうじゃなくて、for文みたいにカウントアップしないで、
>他の条件文でループ終了条件を判定なさりたいってことですかね。

勉強になります。
例えばテキストに1万件のデータがあって
入力してあるレコードの最終行まで
1レコード目から最終行まで
その1度決めた条件文で
判定したいというイメージです。

投稿日時 - 2012-05-29 20:29:41

ANo.4

> 連続番号(tmp[0],out);

> コード番号(tmp[1],out);

> シリアル番号(tmp[2],out);

> にprintにカンマを指定して

> データを書き出してますので


何を言っているのかさっぱり分かりません。
そんな配列の存在なんて元の質問文にありませんでしたし,
今後もこのようなヒントの小出しが続くようだと回答しづらいです。

> 連続番号の配列だけ

> printlnを指定すると

> ほかの配列が崩れてしまうのです。

というコードそのもの(が最良ですが,差し障りがあるのなら,その崩れた実行結果が再現できるようなコード例)を提示する訳にはいかないのですか。

投稿日時 - 2012-05-29 01:58:46

補足

String[] stream = new String[13];{


stream[0] = "予備";
stream[1] = "セキュリティーコード";

予備(stream[0], out);
out.print(",");


セキュリティーコード(stream[1], out);
out.println();

private void 予備(String 予備, PrintWriter out) {

int i;
for (i = 1; i < 6; i++)
out.println(i+",");




}

private void セキュリティーコード(String セキュリティーコード, PrintWriter out) {

print.out(セキュリティーコード);

}

と上記のようなサンプルにBufferedReaderでCSV入出力してますが
このソースは参考程度です。
このサンプルの予備のメソッドで連続番号を生成出来たらなと思ったのですが
予備のメソッドの範囲で
int i;
for (i = 1; i < 6; i++)
out.println(i+",");


}
ですと セキュリティーコードの配列がおかしくなります。
かといって
out.print(i+",");
に変更すると
結果が1,2,3,4,5,セキュリティーコードとなって困ってます。

理想は
1,セキュリティーコード
2,セキュリティーコード
3,セキュリティーコード
4,セキュリティーコード
5,セキュリティーコード


別の方法で
1行読み込んだ結果に,行番号を付けるために,StringBuffer の append メソッドを使用 すれば
連続番号を生成できると聞いて
ソースを加えたりしてみたのですが
うまくいってません。
今は現状このような感じです。
よろしくお願いいたします。

投稿日時 - 2012-05-29 20:23:10

ANo.3

#1です。

すみません、、、やっぱり意味がつかめないんですが。
読解力が低くて申し訳ありません。


> 私が求めているのは
> printやprintlnのことではなくて
> セル表示でイメージすると
> 1レコード目→1,
> 2レコード目→2,
> 3レコード目→3,
> 4レコード目→4,
> 5レコード目→5,
> とこんな感じで
> 最終行までループさせて
> 連続番号を生成させたいのですが

できている、、、と思うのですが。

int i;
for (i = 1; i < 6; i++)
System.out.println(i+",");
}

で、連続番号が生成されますよね?

それとも「最終行まで」のところが問題なんでしょうか?
5行目ではなくて、最終行まで?
最終行が何行目かわかっていれば、
i < 6
の部分を
i <= (最終行数)
とすれば良いと思いますが。

また的外れなことを言っていたら申し訳ありません。

投稿日時 - 2012-05-28 23:12:24

補足

ご丁寧にありがとうございます。
私がもう少し細かくご説明するべきでした。

たいへんお手数をおかけして
申し訳ございません。
int i;
for (i = 1; i < 6; i++)
System.out.println(i+",");
}
の結果では確かに
1つだけの配列の
データ入出力でしたら
連続番号が
私の理想通りの結果になります。
ですが
String[] tmp = new String[3];{
で配列を文字列として宣言していて
tmp [0] = 連続番号
tmp [1] = コード番号
tmp [2] = シリアル番号



連続番号(tmp[0],out);
コード番号(tmp[1],out);
シリアル番号(tmp[2],out);
にprintにカンマを指定して
データを書き出してますので
連続番号の配列だけ
printlnを指定すると
ほかの配列が崩れてしまうのです。
かといって
int i;
for (i = 1; i < 6; i++)
System.out.print(i+",");
}
にすると
配列的に1,2,3,4,56となってしまいます。
それとご提案があった最終列に関しては件数によって
任意で変えることはできるのですが
最終行まで自動でループできる方法がありましたら
お聞きしたかったのです。
ちなみに、連続番号生成したい
配列は予備としてのスペースで
その他の配列はデータが格納されてます。

うまく説明できないのですが
こんな感じでつまづいてます。

投稿日時 - 2012-05-29 00:37:30

ANo.2

「何の」1行目から最終行までなのですか?
最終行最終行と5度も繰り返しておいでですけれど,質問文・お礼・補足を読んでみても,複数行から構成されるようなそのファイルは何なのか,一言も触れられていません。
連続番号の生成が分からないだけで,
そのファイルを1行目から最終行まで順に読む方法はわかっているということですか?

投稿日時 - 2012-05-28 23:04:08

補足

複数の配列の格納されたテキスト入出力の
中で連続番号を生成したかったのです。
大変申し訳ございません。

投稿日時 - 2012-05-29 00:41:19

ANo.1

> 最終行までループさせる方法がわかりません。

あのー、意味がイマイチつかめないのですが、
もしかして、改行を入れたいってことでしょうか???

ここ↓を参考にしてみてください。

http://okwave.jp/qa/q252780.html


あと、

> System.out.print( + i );

の、"i"の前の"+"って何か意味がありますか?
プログラム的には意味がないと思うのですが…。

投稿日時 - 2012-05-28 22:11:02

補足

ご回答ありがとうございます。
"+"は操作ミスでそのままつけてしまった構文の間違いです。
URL参考にさせていただきました。
私が求めているのは
printやprintlnのことではなくて
セル表示でイメージすると
1レコード目→1,
2レコード目→2,
3レコード目→3,
4レコード目→4,
5レコード目→5,
とこんな感じで
最終行までループさせて
連続番号を生成させたいのですが
以前からいろいろ調べて検証しているのですが
結果が得られなくて困ってます。

投稿日時 - 2012-05-28 22:31:41

お礼

すいません
カンマはCSVで区切りとしてイメージしただけのものです。
まぎらわしくてすいません。
1レコード目から最終行まで
連続番号を生成したいのですが・・・

投稿日時 - 2012-05-28 22:34:34