如何存储输入文本文件中的变量?

时间:2017-03-24 22:10:45

标签: java

StackOverflow我是一名CS学生,他在某项任务中遇到麻烦,需要有人协助我完成这项任务。分配给我一个输入文件,其中包含如下数据:

FirstNameFXO|LastFXO|2510 Main Street|Suite 101D|City100|GA|72249|$280.80
FirstNamePNR|LastPNR|396 Main Street|Suite 100A|City102|GA|24501|$346.01
FirstNameXZU|LastXZU|2585 Main Street|Suite 107C|City101|GA|21285|$859.40
FirstNameHWD|LastHWD|1019 Main Street|Suite 102D|City105|GA|28273|$317.12
FirstNameGHP|LastGHP|2097 Main Street|Suite 109B|City106|GA|72621|$279.28
FirstNameUKM|LastUKM|1087 Main Street|Suite 109C|City106|GA|81463|$711.91
FirstNameKUV|LastKUV|2685 Main Street|Suite 106B|City102|GA|37141|$951.47
FirstNameTBO|LastTBO|1971 Main Street|Suite 103C|City101|GA|63018|$851.35  

有1000行,我试图获取这些数据并创建一个输出文件,它将像一个字母一样布局,但我遇到的问题是我不知道如何采取输入的每个部分,所以我可以有一个我可以这样使用的值:

output.write("亲爱的" + firstName + lastName,但我不知道如何使它们成为变量。我已经创建了一个数组,它接受了每一行但我被困在这里。任何帮助都会太棒了。我对File I / O很新,所以这对我来说非常具有挑战性。

import java.io.*;
    import java.util.Scanner;
    public class CollectionLetter {
        public static void main(String[] args) {
            File file = new File("dataCollection.txt");
            String data[] = new String[1000];
            try {
                Scanner s = new Scanner(file);
                while (s.hasNextLine()) {
                    for (int i = 0; i < data.length;i++){
                        data[i] = s.nextLine();
                    }
                    System.out.println(data[1]);
                }s.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

String有一个方法split(String),它可以拆分一个字符串并将其部分作为数组返回。 对于你能做的每一行:

final String[] parts = line.split("|");

这给你一个长度为8的数组(假设每一行的结构都是一样的)。现在,根据您希望各个部分的外观,您可能希望使用仅返回字符串一部分的substring(int)substring(int, int)等方法(例如,删除“FirstName”)。