0

以下は、URL から行を読み取って出力する私のコードです。Excelで行番号などの行番号も出力するにはどうすればよいのだろうと思っていました。

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Scanner;


public class helloworld {

    public static void main(String[] args) throws IOException {
        URL yahh = new URL("https://docs.google.com/spreadsheet/pub?key=0AqSBI1OogE84dDJyN0tyNHJENkNyYUgyczVLX0RMY3c&single=true&gid=0&range=A2%3AA200&output=txt");
        BufferedReader in = new BufferedReader(
                    new InputStreamReader(
                    yahh.openStream()));

        String inputLine;

        while ((inputLine = in.readLine()) != null)

            System.out.println(inputLine);

        in.close();

    }
}

現在の出力は次のとおりです。

11111
22222
33333
44444
55555
66666
77777
88888
99999
100000

なりたい

1   11111
2   22222
3   33333
4   44444
5   55555
6   66666
7   77777
8   88888
9   99999
10  100000
4

4 に答える 4

4

line number変数を宣言し、increment反復ごとにループ内でそれを宣言します。

 int line=0;
 while((inputLine = in.readLine()) != null){
       line++;
       System.out.println(line + "\t" + inputLine); 
    }
于 2012-11-27T21:51:35.950 に答える
1

タブで区切られた出力の行数として変数を使用します。

    int rowCount = 1;
    while ((inputLine = in.readLine()) != null){
        System.out.println(rowCount +"\t" + inputLine);
        rowCount ++;
    }    
于 2012-11-27T21:51:55.170 に答える
1

タブを使用する必要があります

int i = 1;
while ((inputLine = in.readLine()) != null)
  System.out.println(i++ + "\t" + inputLine);
于 2012-11-27T21:52:09.857 に答える
1

大量の数字が存在しないことが確実な場合は、次のようにタブを使用できます。

 int line=0;
 while ((inputLine = in.readLine()) != null){
       line++;
            System.out.println(line + "\t" + inputLine); 
    }

非常に大きな数から確実に保護したい場合は、次のようなもっと凝ったことを行うことができます。

 int line=0;
 while ((inputLine = in.readLine()) != null){
       line++;
            System.out.println(String.format("%8s%s",line,inputLine)); 
    }

数字8-1=7は、これまでに予想した最大の桁数です。

それを超えて、非常に洗練された答えを考え出す必要があり、基本的に一度ループして最大サイズ数を検出し、そこから移動する必要があります。しかし、それは読者の演習として残しておきます;-)

于 2012-11-27T21:52:16.323 に答える