java - 在scanner.next()的While循环的获取数据中添加标签
问题描述
我在如何在 while 循环中添加标签时遇到问题,scanner.next()
这是我的代码:
public void readCSV() throws FileNotFoundException{
try (Scanner scanner = new Scanner(new File("C:/Sample/employees.csv"))) {
scanner.useDelimiter(",");
int c = 1;
while(scanner.hasNext()){
String a ="";
if(c == 1){
a = "ID:";
}
if (c ==2){
a = "Name:";
}
if (c ==3){
a = "Age:";
}
if (c ==4){
a = "Position:";
}
if (c ==5){
a = "Salary:";
}
if (c ==6){
c = 1;
}
System.out.print(a+scanner.next()+"\n");
c++;
}
}
}
此函数的结果:
Employee Record System!
Choose an Operation
(1) View Employee
(2) Add Employee
(3) View Employee by Id
(4) Generate Employee Record
(5) Exit
1
ID:2095
Name:Juan Dela Cruz
Age:24
Position:Programmer
Salary:50000.00
6727
Bruce
25
Programmer
35000.00
3750
John
23
Junior Programmer
35000.00
8435
Alvin
41
Senior Programmer
100000.00
我想要的是每 5 个具有特定标签的获取数据的数据:
预期输出:
ID:2095
Name:Juan Dela Cruz
Age:24
Position:Programmer
Salary:50000.00
ID:6727
Name:Bruce
Age:25
Position:Programmer
Salary:35000.00
ID:3750
Name:John
Age:23
Position:Junior Programmer
Salary:35000.00
ID:8435
Name:Alvin
Age:41
Position:Senior Programmer
Salary:100000.00
解决方案
将while循环更改为此
while(scanner.hasNext()){
String a ="";
if(c == 1){
a = "ID:";
}
if (c ==2){
a = "Name:";
}
if (c ==3){
a = "Age:";
}
if (c ==4){
a = "Position:";
}
if (c ==5){
a = "Salary:";
c = 0;
}
当您在单独的 if 子句中设置 c=1 时,它已经读取了 id 值,并且将在没有标签的情况下打印。它还会以错误的顺序显示其他标签。此外,正如 Johnny 还指出的那样,您可能还需要在分隔符中添加换行符。
推荐阅读
- macos - SwiftUI、macOS 菜单组件自定义
- r - na.approx 仅当列中的连续 NA 少于 3 个时
- docker - 在构建之前让一个 Docker 映像等待另一个完成
- html - 我怎样才能摆脱页面底部的这个图像?
- django - 如何通过 django-allauth 使用 Google One Tap 登录?
- javascript - 无法在 Pywebgui JS API 中运行 Javascript 函数
- c# - Visual Studio 没有格式化我的所有代码
- openvino - 使用 OpenVino 在 GPU 中运行模型
- swift - 如何在 SwiftUI 中使用参数初始化 StateObject
- javascript - 使用 Onclick 功能显示隐藏的图像