Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取字符串数组并将它们进一步分离为对象?_Java_Arrays_String_Object_Arraylist - Fatal编程技术网

Java 如何获取字符串数组并将它们进一步分离为对象?

Java 如何获取字符串数组并将它们进一步分离为对象?,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

我有一个字符串数组,用于标识宠物名、动物类型、年龄和主人的姓名(每个属性用逗号分隔):

我创建了一个pet类,其成员包括stringpetname、stringtype、int age和stringownername

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是有帮助的。

我写了一个解决方案。有两个关键点。拆分字符串可能会导致错误的解决方案。这就是为什么,我添加了一个正确的正则表达式。此外,您还需要注意整数转换。