package core;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import java.util.regex.Pattern;
public class VetShop
{
public static void main(String[] args)
{
Animal[] Clients = new Animal[73];
//File ClientInfo = new File("C:/Users/William/Desktop/HomeWork5/program5.txt");
inputData(Clients);
SortData(Clients);
ReportData(Clients);
}
public static void inputData(Animal[] client)throws InputMismatchException
{
//reading
File ClientInfo = new File("C:/Users/William/Desktop/HomeWork5/program5.txt");
Scanner input = new Scanner(ClientInfo);
//Animal X = new Animal(
while(input.hasNext())
{
for(int i = 1; i <=client.length ;i++)
{
client[i]= input.nextLine(); //Problem is here
//System.out.println(numbers[j]);
}
}
}
public static void SortData(Animal[] clients)
{
//Not HERE YET
}
public static void ReportData(Animal[] clients)
{
//Not HERE YET
}
}
这是我们需要使用的文本文件
料斗2003 555 Kangaroo 2kitty 2009 44 Cat 4
Spot 2005 333 Dog 4
Johnny 2008 111 Cat 4
Dan 2015 433 Dog 4
Striper 2011 432 Sckunk 4
Edward 1995 630 Horse 4
casper 1998 88 Snake Cold-Blooded
靴子2005 987马4
Ryan 2014 21鱼冷血
答案 0 :(得分:0)
您需要更改此行:
client[i]= input.nextLine(); //Problem is here
作为
client[i] = new Animal();
String line = input.nextLine();
这是因为input.nextLine()
返回一个String,而不是Animal。
现在,解析line
并将其拆分为已有的字段。例如:
hopper 2003 555 Kangaroo 2
有5个字段。
另外,请将变量'client'的名称更改为'animals'。
答案 1 :(得分:0)
因此,您无法将String转换为Animal,因为它们是两种不同类型的对象。您可以做的是在Animal类中创建一个public static Animal parse(String string)
方法,该方法将获取一个String并返回一个解析后的Animal对象,然后您可以将该对象添加到该数组中。然后你可以用以下方式调用它:
client[i] = Animal.parse(input.nextLine());
在parse方法中,您可以创建一个新的Animal,拆分String并在刚刚创建的Animal对象中设置适当的字段,最后返回新创建的Animal对象。