0

最初の行がデータセットの数で、残りの 2 つの整数が乗算されて出力されるファイルがあるとしたら、どうしますか?

The file is
    9
    10 2 
    11 1
    8  2
    7  9
    -1 10
    3  9
    6  3
    18 2
    7  3 
And the output is supposed to be
    20 
    11
    16
    63
    -10
    27
    18
    36
    21

(これは Java にあることに注意してください。入力の最初の数値が変更された場合、出力の数値はそれに応じて変化し、数値は他の数値と交換可能であると想定されています)

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Basic_Attempt {

    public static void main(String[] args) {

        // Location of file to read
        File file = new File("data.txt");

        try {

            Scanner scanner = new Scanner(file);

            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println(line);
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

単にファイルを模倣するだけでもコードを使いすぎている可能性がありますが、実際にスキャナー入力を配列に分割する方法と、各行の内容を確認する方法を知る必要があります。Javaでそれを行う方法はありますか?

4

2 に答える 2

1

以下のコードを確認してください。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

class Test{

    public static void main(String args[]){
        Integer[] test = getData("file1.jt");
        for(Integer t: test){
            System.out.println(t);
        }
    }

    public static Integer[] getData(String pathtofile){
        BufferedReader br = null;
        Integer[] ret = null;
        try {
            String sCurrentLine;
            Integer totNumber;
            br = new BufferedReader(new FileReader(pathtofile));
            totNumber = Integer.parseInt(br.readLine());

            if(totNumber > 0){
                ret = new Integer[totNumber];
                for(int i=0;i<totNumber;i++){
                    if(((sCurrentLine = br.readLine()) != null)){
                        String[] pieces = sCurrentLine.split(" ");
                        if(pieces.length==2){
                            ret[i] = Integer.parseInt(pieces[0]) * Integer.parseInt(pieces[1]);
                        }
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (NumberFormatException e){
            e.printStackTrace();
        } finally {
            try {
                if (br != null) br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return ret;
    }
}
于 2013-10-09T04:48:36.677 に答える
1
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class hello {

    public static void main(String[] args) {

        // Location of file to read
        File file = new File("C:\\Users\\k\\Desktop\\新建文本文档.txt");

        try {

            Scanner scanner = new Scanner(file);

            int lineNum = scanner.nextInt();
            scanner.nextLine();
            while (lineNum > 0) {
                String[] ss = new String[2];
                String line = scanner.nextLine();
                lineNum --;
                ss = line.split("\t");

                int first = Integer.parseInt(ss[0]);
                int second = Integer.parseInt(ss[1]);
                int result = first * second;
                System.out.println(String.valueOf(result));
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
于 2013-10-09T05:09:26.613 に答える