Java 如何获取字符串数组并将它们进一步分离为对象?
我有一个字符串数组,用于标识宠物名、动物类型、年龄和主人的姓名(每个属性用逗号分隔): 我创建了一个pet类,其成员包括stringpetname、stringtype、int age和stringownernameJava 如何获取字符串数组并将它们进一步分离为对象?,java,arrays,string,object,arraylist,Java,Arrays,String,Object,Arraylist,我有一个字符串数组,用于标识宠物名、动物类型、年龄和主人的姓名(每个属性用逗号分隔): 我创建了一个pet类,其成员包括stringpetname、stringtype、int age和stringownername public class Pet { string petName; string type; int age; string ownerName; //getters } 我主要是说 List<Pet> pets = new ArrayList<Pet&g
public class Pet
{
string petName;
string type;
int age;
string ownerName;
//getters
}
我主要是说
List<Pet> pets = new ArrayList<Pet>();
List pets=new ArrayList();
我想使用arraylist创建一个宠物对象数组。我知道我必须使用split来遍历原始数组,但这就给我留下了另一个逗号分隔的值数组。如何编写一个循环来遍历petInfo数组并将这些值添加到列表中的每个pet对象?一个非常详细的示例:此方法获取数组并将pet部件转换为pet。最后返回宠物列表
public List<Pet> toPets(String[] petArray) {
List<Pet> pets = new ArrayList();
for (String petAsString: petArray) {
String[] petParts = petAsString.split(",");
String petName = petParts[0].trim();
String type = petParts[1].trim();
int age = Integer.parseInt(petParts[2].trim());
String ownerName = petParts[3].trim();
Pet pet = new Pet(petName, type, age, ownerName);
pets.add(pet);
}
return pets;
}
公共列表主题集(字符串[]petArray){
List pets=new ArrayList();
用于(字符串petAsString:petArray){
字符串[]petParts=petassString.split(“,”);
字符串petName=petParts[0]。trim();
字符串类型=petParts[1]。trim();
int age=Integer.parseInt(petParts[2].trim());
String ownerName=petParts[3].trim();
宠物=新宠物(宠物名称、类型、年龄、所有者姓名);
宠物。添加(宠物);
}
归还宠物;
}
一个非常详细的示例:此方法获取阵列并将pet部件转换为pet。最后返回宠物列表
public List<Pet> toPets(String[] petArray) {
List<Pet> pets = new ArrayList();
for (String petAsString: petArray) {
String[] petParts = petAsString.split(",");
String petName = petParts[0].trim();
String type = petParts[1].trim();
int age = Integer.parseInt(petParts[2].trim());
String ownerName = petParts[3].trim();
Pet pet = new Pet(petName, type, age, ownerName);
pets.add(pet);
}
return pets;
}
公共列表主题集(字符串[]petArray){
List pets=new ArrayList();
用于(字符串petAsString:petArray){
字符串[]petParts=petassString.split(“,”);
字符串petName=petParts[0]。trim();
字符串类型=petParts[1]。trim();
int age=Integer.parseInt(petParts[2].trim());
String ownerName=petParts[3].trim();
宠物=新宠物(宠物名称、类型、年龄、所有者姓名);
宠物。添加(宠物);
}
归还宠物;
}
以下是您所需要的一切:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
String[] petInfo = {"Spot, dog, 2, Joey", "Kip, dog, 3, Jack", "Snuffles, cat, 1, Jane" , "Franklin, turtle, 4, Arthur"};
List<Pet> pets = new ArrayList<Pet>();
for (String singlePetInfo : petInfo) {
pets.add(getPetFromString(singlePetInfo));
}
pets.forEach(System.out::println);
}
private static Pet getPetFromString(String petDescription){
String[] split = petDescription.split(", ");
return new Pet(split[0], split[1], Integer.parseInt(split[2]), split[3]);
}
}
import java.util.ArrayList;
导入java.util.List;
公共班机{
公共静态void main(字符串[]args){
字符串[]小信息={“斑点,狗,2,乔伊”,“基普,狗,3,杰克”,“鼻塞,猫,1,简”,“富兰克林,乌龟,4,亚瑟”};
List pets=new ArrayList();
for(字符串singlePetInfo:petInfo){
添加(getPetFromString(singlePetInfo));
}
pets.forEach(System.out::println);
}
私有静态Pet getPetFromString(字符串petDescription){
String[]split=petDescription.split(“,”);
返回新Pet(拆分[0],拆分[1],整数.parseInt(拆分[2]),拆分[3]);
}
}
以下是您所需要的一切:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
String[] petInfo = {"Spot, dog, 2, Joey", "Kip, dog, 3, Jack", "Snuffles, cat, 1, Jane" , "Franklin, turtle, 4, Arthur"};
List<Pet> pets = new ArrayList<Pet>();
for (String singlePetInfo : petInfo) {
pets.add(getPetFromString(singlePetInfo));
}
pets.forEach(System.out::println);
}
private static Pet getPetFromString(String petDescription){
String[] split = petDescription.split(", ");
return new Pet(split[0], split[1], Integer.parseInt(split[2]), split[3]);
}
}
import java.util.ArrayList;
导入java.util.List;
公共班机{
公共静态void main(字符串[]args){
字符串[]小信息={“斑点,狗,2,乔伊”,“基普,狗,3,杰克”,“鼻塞,猫,1,简”,“富兰克林,乌龟,4,亚瑟”};
List pets=new ArrayList();
for(字符串singlePetInfo:petInfo){
添加(getPetFromString(singlePetInfo));
}
pets.forEach(System.out::println);
}
私有静态Pet getPetFromString(字符串petDescription){
String[]split=petDescription.split(“,”);
返回新Pet(拆分[0],拆分[1],整数.parseInt(拆分[2]),拆分[3]);
}
}
您可以创建一个构造函数或助手方法,从给定字符串创建Pet
对象
以下是构造函数的代码段。见:
要使用它,您可以执行以下操作:
String[] petInfo = new String[]{"Spot, dog, 2, Joey",
"Kip, dog, 3, Jack", "Snuffles, cat, 1, Jane" , "Franklin, turtle, 4, Arthur"};
ArrayList<Pet> list = new ArrayList();
for(String p:petInfo)
{
list.add(new Pet(p));
}
String[]petInfo=新字符串[]{“斑点,狗,2,乔伊”,
“基普,狗,3,杰克”,“鼻塞,猫,1,简”,“富兰克林,乌龟,4,亚瑟”};
ArrayList=新建ArrayList();
for(字符串p:petInfo)
{
列表。添加(新Pet(p));
}
您可以创建一个构造函数或助手方法,从给定字符串创建Pet
对象
以下是构造函数的代码段。见:
要使用它,您可以执行以下操作:
String[] petInfo = new String[]{"Spot, dog, 2, Joey",
"Kip, dog, 3, Jack", "Snuffles, cat, 1, Jane" , "Franklin, turtle, 4, Arthur"};
ArrayList<Pet> list = new ArrayList();
for(String p:petInfo)
{
list.add(new Pet(p));
}
String[]petInfo=新字符串[]{“斑点,狗,2,乔伊”,
“基普,狗,3,杰克”,“鼻塞,猫,1,简”,“富兰克林,乌龟,4,亚瑟”};
ArrayList=新建ArrayList();
for(字符串p:petInfo)
{
列表。添加(新Pet(p));
}
拿着你的petInfo
数组,用for
循环遍历它。然后分割字符串并创建一个新的Pet
对象,然后只需将其添加到名为pets
的列表中即可
List<Pet> pets = new ArrayList<Pet>();
//Renamed it to petInfos, for better usage in the for loop
String[] petInfos = ["Spot, dog, 2, Joey", "Kip, dog, 3, Jack", "Snuffles, cat, 1, Jane" ,
"Franklin, turtle, 4, Arthur",...]
for(String petInfo : petInfos){
String[] petInfoSplitted = petInfo.split(", ");
pets.add(new Pet(petInfoSplitted[0], petInfoSplitted[1],
Integer.parseInt(petInfoSplitted[2]), petInfoSplitted[3]);
}
List pets=new ArrayList();
//为了更好地在for循环中使用,将其重命名为petinfo
字符串[]小信息=[“斑点,狗,2,乔伊”,“基普,狗,3,杰克”,“鼻塞,猫,1,简”,
“富兰克林,乌龟,4号,亚瑟”…]
用于(字符串小信息:小信息){
字符串[]petInfo Splitted=petInfo.split(“,”);
添加(新宠物(小宠物拆分[0],小宠物拆分[1],
整数.parseInt(PetInfo拆分[2]),PetInfo拆分[3]);
}
我希望我的awnser能帮上忙。拿着你的petInfo
数组,用for
循环遍历它。然后你拆分你的字符串,创建一个新的Pet
对象,然后你可以把它添加到你的列表中,名为pets
List<Pet> pets = new ArrayList<Pet>();
//Renamed it to petInfos, for better usage in the for loop
String[] petInfos = ["Spot, dog, 2, Joey", "Kip, dog, 3, Jack", "Snuffles, cat, 1, Jane" ,
"Franklin, turtle, 4, Arthur",...]
for(String petInfo : petInfos){
String[] petInfoSplitted = petInfo.split(", ");
pets.add(new Pet(petInfoSplitted[0], petInfoSplitted[1],
Integer.parseInt(petInfoSplitted[2]), petInfoSplitted[3]);
}
List pets=new ArrayList();
//为了更好地在for循环中使用,将其重命名为petinfo
字符串[]小信息=[“斑点,狗,2,乔伊”,“基普,狗,3,杰克”,“鼻塞,猫,1,简”,
“富兰克林,乌龟,4号,亚瑟”…]
用于(字符串小信息:小信息){
字符串[]petInfo Splitted=petInfo.split(“,”);
添加(新宠物(小宠物拆分[0],小宠物拆分[1],
整数.parseInt(PetInfo拆分[2]),PetInfo拆分[3]);
}
我希望我的awnser是有帮助的。我写了一个解决方案。有两个关键点。拆分字符串可能会导致错误的解决方案。这就是为什么,我添加了一个正确的正则表达式。此外,您还需要注意整数转换。