gpt4 book ai didi

Java为每条记录创建具有唯一ID的对象

转载 作者:行者123 更新时间:2023-12-01 17:46:25 25 4
gpt4 key购买 nike

我正在开发这个项目,我应该解析包含虚构公司数据和其他相关详细信息的文件,为每个记录创建一个对象并将对象存储到合适的集合中。我已经开始了,但现在我陷入困境并寻求帮助。

我已经设法从本地存储读取文件并将其输出到控制台,但奇怪的是它输出了详细信息六次,与我拥有的变量数量相匹配。有简单的解决办法吗?

此外,我将使用什么技术为每条记录生成 ID,该 ID 将随每条记录递增?例如1、2 ... 11、12、13 等等

我已经阅读了有关映射到数据成员的 getter 方法和 toString() 方法的信息,但似乎无法充分理解它以将其实现到我的程序中。是否有任何类似的项目可以帮助我了解这些技术的工作原理并对我的技术有所帮助?

import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Scanner;

public class ApplicationRunner {
static void menu() {
try {
char quit = 'n';
String menuInput;
int menuChoice = 0;

Scanner scan = new Scanner(System.in);

while (quit != 'y') {
System.out.println(
"\n List traders.......1"
+ "\n Select trader......2"
+ "\n Search locations...3"
+ "\n Search services....4"
+ "\n Exit...............0"
+ "\n\n Enter choice:>");

menuChoice = scan.nextInt();

switch (menuChoice) {
case 1:
listTraders();
break;
case 2:
selectTrader();
break;
case 3:
searchLocation();
break;
case 4:
searchServices();
break;
case 0:
System.out.println("Exiting...");
System.exit(0);
break;
default:
System.out.println("Invalid menu selection.");
}

System.out.println("Quit? y/n");
menuInput = scan.next().toLowerCase();
quit = menuInput.charAt(0);
}
}

catch (Exception inputError)
{
System.out.println("\nInvalid input value. Valid values 0-4.");
menu();
}
}

static void listTraders() {
String dataFile = System.getProperty("user.dir") + File.separator + "traders.txt";

try {
BufferedReader br = new BufferedReader(new FileReader(dataFile));

String line = null;

while ((line = br.readLine()) != null) {
String[] details = line.split(":");

String companyName = details[0];
String location = details[1];
String services = details[2];
String description = details[5];
int numEmployees = Integer.parseInt(details[3]);
double dailyRate = Double.parseDouble(details[4]);

for (String printDetails : details) {

System.out.println(companyName + "\t" + location + "\t" + services +
"\t" + description + "\t" + numEmployees + "\t" + dailyRate);
}
}

br.close();
} catch (IOException e) {
e.printStackTrace();
}
}

static void selectTrader() {

}

static void searchLocation() {

}

static void searchServices() {

}

public static void main(String[] args) {
menu();
}

}

此程序中使用的交易者文件 - https://gist.github.com/senotajs/0011c93460f0e9603a53858de15f8639

最佳答案

在下面的代码片段中,您正在针对 details 数组的长度运行 for 循环。 details 数组包含 6 个变量,这就是为什么你会看到它打印了 6 次。要修复它,请删除循环并仅打印变量。

    for (String printDetails : details) {

System.out.println(companyName + "\t" + location + "\t" + services +
"\t" + description + "\t" + numEmployees + "\t" + dailyRate);
}

关于Java为每条记录创建具有唯一ID的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60860708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com