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();
}
}
}
答案 0 :(得分:1)
String
有一个方法split(String)
,它可以拆分一个字符串并将其部分作为数组返回。
对于你能做的每一行:
final String[] parts = line.split("|");
这给你一个长度为8的数组(假设每一行的结构都是一样的)。现在,根据您希望各个部分的外观,您可能希望使用仅返回字符串一部分的substring(int)
或substring(int, int)
等方法(例如,删除“FirstName”)。