从数组列表中提取组合字符串



我正在扫描三个不同的输入并使用toString将它们转换为单个字符串。 然后我想编辑单个输入。
例如:

name phoneNumber address 
sarmad 12345 myhouse

如何编辑"我的房子"?

import java.util.ArrayList;
import java.util.Scanner;
public class mainClass {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        ArrayList<String> arraylist = new ArrayList<String>();
        CreateFormat FormatObject = new CreateFormat();
        int choice;
        String phoneNumber;
        String name,address;
        String format = "Empty";
        int x = 1;
        int flag = 0;
        do{
            try{
                System.out.println("Enter your choice");
                System.out.printf("1:Enter new datan2:Display data");
                choice = Integer.parseInt(input.next());
                switch (choice){
                    case 1:{
                        System.out.println("Enter name  ");
                        name = input.next();
                        System.out.println("Enter phone number");
                        phoneNumber = input.next();
                        System.out.println("Enter address");
                        address = input.next();
                        format = FormatObject.toString(phoneNumber, name, address);
                        arraylist.add(format);
                        flag++;
                    }
                        break;
                    case 2:{
                        System.out.println("Name   Phone number   Address");
                        System.out.println();
                        for(int i = 0; i < flag; i++){
                            System.out.println(arraylist.get(i));
                        }
                    }
                        break;
                    default:{
                        System.out.println("Enter right choice");
                    }
                }
            }
            catch(Exception InputMismatchException){
                System.out.println("Enter right choice");   
            }
        } while(x == 1);
    }
}

我的toString方法:

public class CreateFormat {
    String phoneNumber;
    String nameUser;
    String addressUser;
    public String toString(){
        return String.format("%s  %s  %s", nameUser,phoneNumber,addressUser);
    }
    public String toString (String phone,String name,String address){
        phoneNumber = phone;
        nameUser = name;
        addressUser = address;
        return String.format("%s  %s  %s", nameUser,phoneNumber,addressUser);
    }
}

这里你需要的是为你的属性实现二传手/getters。

public class CreateFormat {
 private String phoneNumber;
 private String nameUser;
 private String addressUser;
public void setPhoneNumber(String phoneNumber) {
   this.phoneNumber = phoneNumber;
}
public String getPhoneNumber() {
   return phoneNumber;
}
// Similar set & get methods for other properties too.
}

我允许自己对你的代码进行一些更改,因为我的理解是,放弃 String 并使用对象本身会更容易和令人窒息。

import java.util.ArrayList;
import java.util.Scanner;
public class mainClass {
    public static void main(String[] args) {
        Scanner input= new Scanner(System.in);
        ArrayList<CreateFormat> arrayList = new ArrayList<CreateFormat>();
        int choice;
        String phoneNumber;
        String name; //sepperated for readability
        String address;
        //String format="Empty"; not used anymore
        int x = 1;
        //int flag = 0; is not necessary
        do{
            try{   
                System.out.println("Enter your choice");
                System.out.printf("1:Enter new datan2:Display data");
                choice = input.nextInt();//Integer.parseInt(input.next());
                switch (choice){
                    case 1:{
                        System.out.println("Enter name  ");
                        name = input.next();
                        System.out.println("Enter phone number");
                        phoneNumber = input.next();
                        System.out.println("Enter address");
                        address = input.next();
                        arraylist.add(new CreateFormat(name, phoneNumber, address)); //changed to an object of type CreateFormat instead of String
                        //flag++; not necessary
                    }
                        break;
                    case 2:{
                        //System.out.println("Name   Phone number   Address");
                        //System.out.println();
                        for(int i=0;i<arrayList.size();i++){// size = method from the ArrayList library
                            System.out.println("Name:" + arrayList.get(i).getNameUser());
                            System.out.println("Phone Number:" + arrayList.get(i).getPhoneNumber());
                            System.out.println("Address:" + arrayList.get(i).getAddressUser());
                            //System.out.println(arraylist.get(i));
                        }
                    }
                    break;
                    default:{
                        System.out.println("Enter right choice");
                    }
                }
            }
            catch(Exception InputMismatchException){
            System.out.println("Enter right choice");   
            }
        }while(x==1);
    }
}

创建格式:

public class CreateFormat {
    String phoneNumber;
    String nameUser;
    String addressUser;
    public CreateFormat(String phoneNumber, String nameUser, String addressUser){
        this.phoneNumber = phoneNumber;
        this.nameUser = nameUser;
        this.addressUser = addressUser;
    }
    public String getPhoneNumber(){
        return this.phoneNumber;
    }
    public String getNameUser(){
        return this.nameUser;
    }
    public String getAddressUser(){
        return this.addressUser;
    }
}

我还无法测试它,所以请随时询问是否有一些问题。

最新更新