【发布时间】:2013-11-18 17:46:30
【问题描述】:
这是我所拥有的:
public void readFile(String fileToOpen) {
File myFile = new File(fileToOpen);
try {
Scanner inFile = new Scanner(myFile);
while (inFile.hasNext()) {
String input = inFile.nextLine();
String [] readString = input.split(",");
for (int i = 0; i < readString.length; i++) {
readString[i].trim();
}
System.out.println(readString[0] + readString[1] + readString[2] + readString[3] + readString[4] + readString[5]);
Point myPoint = new Point(Integer.parseInt(readString[1]), Integer.parseInt(readString[2]));
if (readString[0].toLowerCase().equals("man")) {
Man myMan = new Man(myPoint, Integer.parseInt(readString[3]), Integer.parseInt(readString[4]), readString[5]);
this.myList.add(myMan);
} else if (readString[0].toLowerCase().equals("woman")) {
Woman myWoman = new Woman(myPoint, Integer.parseInt(readString[3]), Integer.parseInt(readString[4]), readString[5]);
this.myList.add(myWoman);
} else {
inFile.close();
throw new IllegalArgumentException();
}
}
inFile.close();
}
我知道它并不完美,我只是在学习。但是, trim() 应该在这里工作......
我的输入文件是:
man, 300, 200, 3, 2, Bill
如果我要将修剪后的字符串加在一起,我应该得到:
man30020032Bill
但我得到了:
man 300 200 3 2 Bill
我不知道为什么。有人可以帮忙吗?
【问题讨论】:
-
你用调试器试过了吗?
-
字符串是不可变的。
-
关于字符串不变性,以下内容值得一读:en.wikipedia.org/wiki/Immutable_object#Java
-
谢谢大家,我觉得自己很愚蠢......感谢快速而完美的答案!
-
@JesseWoodring 不要觉得自己很愚蠢,这是从 Java 开始时很容易遇到的错误。事实是,您的问题格式正确——它显示了您的尝试,清楚地说明了问题/问题,没有充满错误的代码,并且您接受了答案。欢迎使用 Stack Overflow。