当前位置: 首页 > 面试题库 >

java:如何使用.txt中的数据创建多个数组

濮升
2023-03-14
问题内容

所以这是我必须编写的第一个真正的Java程序。我对Java也相当陌生。

程序必须使用2个命令行参数(假定是x和y坐标)运行,然后确定坐标位于哪个城市和县。为此,我想使用一个“卷号”。

但是,在我可以从程序的那些部分开始之前,我首先需要创建并填充不同的数组,对吗?

.txt文件包含以下内容:(所有地点和坐标都在荷兰顺便说一句)ID号县辖市。例如:

0格罗宁根哈伦

1格罗宁根韭菜

对于前518行,等等。接下来的61650行是这样的坐标:

0 6.665039 53.181004

0 6.666431 53.180642

第一个整数(此处为0)与市镇相对应

回到问题。文本文件无法更改,我必须使用cmd中的redirection(?):java’programname’<filename.txt。它应该读取整个文件,创建1个数组,其中的ID号都是整数。一个县和一个市的阵列,对吗?但是,当数据在同一行上时,如何创建3个不同的数组(oke
2、1个整数数组和2个字符串数组)。

我想使用StdIn.readInt,StdIn.readString和StdIn.readLine,但我只是无法使其工作。

在此先感谢您的帮助。

到目前为止,这就是我所拥有的,它给出了错误,因为(我认为是因为这样)它期望读取一个整数,但是同一行上也有字符串。

public class test{

 public static void main(String[] args){


   int n = 519;
   Integer[] a = new Integer[n];
   for(int i = 0; i < n; i++){
   a[i] = StdIn.readInt();
   StdOut.println(a[i]);
    }
 }
}

问题答案:

由于不同的条目由行分隔,请阅读完整的行,然后在空格字符处将其分割,然后将第一个转换为一个int并将其分配给int数组,并将另外两个分配给您的字符串数组:

String line = StdIn.readLine();
String[] split = line.split(" ");
intArray[X] = Integer.parseInt(split[0]);
stringArray1[X] = split[1];
stringArray2[X] = split[2];

您可以循环执行此操作。

要像读取文件一样java -jar your.jar < inputFile.txt,需要将阅读器的输入流设置为System.in如何执行(或者是否StdIn为您执行),我不知道该文件的来源StdIn

编辑

当我正确理解您的信息后,您无需执行任何操作,即可StdIn使用进行自动初始化System.in

这意味着StdIn.readLine()将返回输入文件的第一行。您可以使用以下命令读取文件的每一行:

while (StdIn.hasNextLine())
{
    String line = StdIn.readLine();
    // stuff from above
}

要从命令行参数获取x和y,您需要String[] args从main方法访问该参数:

int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);

请注意,我在此处编写的所有代码都不会检查可能发生的任何异常(例如,如果您不输入两个int)。我猜这取决于您的任务(如果它说您可以假定输入正确,则上面的代码应该可以)。

然后,您可以像这样执行Java程序:java -jar your.jar 100 20 < inputFile.txt。其中x的值为100,y的值为20,y的值和inputFile.txt包含位置数据的文件。



 类似资料:
  • 刚开始使用熊猫和python。 我有一个工作表,我已经读到一个数据框和应用的正向填充(ffill)方法。 然后我想创建一个包含两个工作表的excel文档。 在应用FFIL方法之前,一个工作表的数据帧中包含数据,而下一个工作表的数据帧应用了FFIL方法。 最终,我打算为数据框的某一列中的每个唯一数据实例创建一个工作表。 然后我想应用一些vba格式的结果-但我不确定哪个dll或插件或东西,我需要调用e

  • 问题内容: 我有一个使用在不同地理位置的四个数据库的应用程序。所有数据库都包含相同的表,只有数据库名称根据位置而不同。我必须在应用程序中创建一些报告,这些报告使用每个数据库中的数据。从Java应用程序创建那些数据库连接的正确方法是什么,是否有适合我使用的适合此任务的设计模式? 问题答案: 由于您没有任何的标记这个你的问题,,,,我假设你正在处理普通的JDBC。 话虽如此,我建议您有一个DAO层来处

  • 问题内容: 我正在参加的编程班上为我提供了一个项目,但我不知道从哪里开始,并希望有人可以将我推向正确的方向。我只发布项目的一部分,以便有人可以向我展示一些代码,以了解如何完成编程,因为我之前参加过编程课程,但是我没有实践。 创建一个具有以下类的名为Registrar的应用程序: 一个学生类,该类至少为学生存储以下数据字段: 名称 学生证号码 学分数 还应该提供以下方法: 初始化名称和ID字段的构造

  • 问题内容: 刚开始使用pandas和python。 我有一个工作表,已读入数据框并应用了前向填充(ffill)方法。 然后,我想创建一个包含两个工作表的Excel文档。 在应用填充方法之前,一个工作表将在数据框中包含数据,而在下一个工作表将应用了填充方法的数据框。 最终,我打算为数据框的特定列中的每个数据唯一实例创建一个工作表。 然后,我想对结果应用某些vba格式-但我不确定哪个dll或插件,或者

  • 问题内容: 问候所有我想做的事情,例如触发器或侦听器(我不知道要做什么),它们将侦听特定的数据库表,并在此表上插入每个新记录后,执行一些Java代码,这意味着它检测到是否有可能插入新记录并获取其数据,我需要一些有关如何完成此过程的指南? 我正在使用Spring-Hibernate-PostgreSQL 问题答案: 这就是创建“ 侦听/提示 ”的目的。 唯一的缺点是您将需要某种类型的后台线程来定期轮

  • 我在使用文本文件创建SQLite数据库时遇到了问题。我应该创建一个成员列表,其中包含以下内容:(成员)号、名字、姓氏、地址和电话号码(如果有的话)。我正在使用方法创建db,但我似乎无法让它正常工作。 文本文件是这样填充的('...'应该意味着列表中还有其他文件): 正如你可能看到的,一些成员没有电话号码,我认为这是导致db无法填充的原因。我之所以相信这一点,是因为我试图用所有信息制作自己的列表,这