【发布时间】:2016-08-10 20:42:54
【问题描述】:
在一个main方法的测试类中,参数设置为一个文件名(这个文件包含整数数据)
这里是sn-p的代码:
static Main main = new Main();
static
{
String[] args = {"../data/filename.txt"};
main.main(args);
}
由于文件名作为参数传递给 main 方法,因此文件名的类型为 String[]。需要解析该文件(或任何其他可能的方法)以获取信息。为此,我使用扫描仪逐行查看。
public static void main( String[] args )
{
List<Integer> left = new ArrayList();
List<Integer> right = new ArrayList();
try {
Files.lines(Paths.get("filename.txt"))
.map(l -> l.split("\\s"))
.forEachOrdered(l -> {
left.add(Integer.parseInt(l[0]));
right.add(Integer.parseInt(l[1]));
});
} catch (NumberFormatException | IOException e) {
e.printStackTrace();
}
int[] leftArray = left.stream().mapToInt(Integer::intValue).toArray();
int[] rightArray = right.stream().mapToInt(Integer::intValue).toArray();
}
这里的问题是我已将文件名硬编码到 Files.lines(Paths.get("filename.txt")) 中,这是我不想要的。
由于文件名作为参数传递并且它是 String[] 类型,因此我不能使用 args 作为文件扫描器的参数。我的问题是,如何将 String[] 转换为 String?或者有没有更简单的方法来解析信息? (请记住,文件名将是 main 的参数)
【问题讨论】:
标签: java arrays string parsing main