gpt4 book ai didi

java - 读取 .txt 文件并卡在第一个字符上

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

我有一个看起来像这样的文本文件:

p : 10001 : Unity

c : 20007 : Witch : Morgana: 10001 : 10 : 15 : 0

t : 30001 : Gold : 20004 : 50 : 2000

a : 40002 : Wand : 20006

我想使用“:”作为分隔符,并根据第一个字符对每一行进行操作。

try {
Scanner scanner = new Scanner(chooser.getSelectedFile()).useDelimiter(":");
int index;
String type;
String name;

String identifier = scanner.next();

if (identifier == "p") {
index = scanner.nextInt();
name = scanner.next();
partyList.add(new Party(index, name));

} else if (identifier == "c") {
index = scanner.nextInt();
type = scanner.next();
name = scanner.next();
int partyC = scanner.nextInt();
int empathyC = scanner.nextInt();
double carryingCapacityC = scanner.nextDouble();
creatureList.add(new Creature(index, type, name, partyC, empathyC,carryingCapacityC));

} else if (identifier == "t") {
index = scanner.nextInt();
type = scanner.next();
int creatureT = scanner.nextInt();
double weightT = scanner.nextDouble();
int valueT = scanner.nextInt();
treasureList.add(new Treasure(index, type, creatureT, weightT, valueT));

} else if (identifier == "a") {
index = scanner.nextInt();
type = scanner.next();
int creatureA = scanner.nextInt();
artifactList.add(new Artifact(index, type, creatureA));

} else {
System.out.println("This is not a valid line of input");
}
System.out.println("Identifier: " + identifier);
} catch (IOException e) {
e.printStackTrace();
}

这应该不会太困难...但是,当我运行该程序时,我得到这样的信息:

You chose to open this file: testFileSC.txt 

This is not a valid line of input

Identifier: p

This is not a valid line of input

Identifier: 10002

//etc. (you get the point) all the way through my text file.

所以它可以正常读取文件,但卡在第一个字符上。此外,让一切都成为“标识符”。有任何想法吗?我已经盯着这个看了太久了!

最佳答案

标识符是一个字符串。不能使用 == 来检查字符串的值。 == 将检查两个对象是否相同,但事实并非如此。一个对象是一个字符串变量;另一个对象是常量。使用 .equals() 方法将检查字符串的值。

if( identifier.equals("p"))
...

如果你想覆盖可能包含空格的情况,你也可以这样做:

if( identifier.startsWith("p"))

关于java - 读取 .txt 文件并卡在第一个字符上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9087014/

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