我已经从文本文件中扫描了各行,现在需要将该行分成四个不同的字符串,然后将它们添加到数组中。我在这里做错了什么帮助?
public void method()throws FileNotFoundException{
FileDialog fileBox = new FileDialog(mainWindow,"Open", FileDialog.LOAD);
fileBox.setVisible(true);
fileBox.setDirectory(".");
String dataFile = fileBox.getFile();
Scanner scanner = new Scanner(new File(dataFile));
while(scanner.hasNext())
{
String lineOfInput = scanner.nextLine();
if (lineOfInput.startsWith("/") || lineOfInput.startsWith("[") && lineOfInput !=null)
scanner.nextLine();
else
{
String newLineOfInput = lineOfInput.trim();
System.out.println(newLineOfInput);
Scanner newScanner = new Scanner(newLineOfInput);
while(newScanner.hasNext())
{
String group = scanner.next();
String vehID = scanner.next();
String regNo = scanner.next();
String make = scanner.next();
storeVehicle( new Vehicle(group, vehID, regNo,make));
newScanner.close();
}
}
scanner.close();
}
答案 0 :(得分:0)
刚刚浏览了问题......似乎下面代码中的scanner
应该是newScanner
。
String group = scanner.next();
String vehID = scanner.next();
String regNo = scanner.next();
String make = scanner.next();
因为你想使用存储在变量newLineOfInput
下的行;我假设?
更好的选择是使用String#split
功能。您不会创建一个全新的Scanner
对象。它会是这样的:
String[] lines = newLineOfInput.split(" "); // Splits the string into a string array separated at every 'Space' character.
String group = lines[0];
String vehID = lines[1];
...
答案 1 :(得分:0)
试试这个
int IntSLList::frequency(int e)
{
int total = 0;
IntSLLNode *temp;
for (temp = head; temp!=0 && !(temp-> info ==e) ; temp = temp->next)
{
total++;
}
return total;
不确定这是否有帮助,但也许值得一试。