2015-11-16 2 views
1

Я застрял в этом вопросе. Я пытаюсь добавить новую информацию в «старую» информацию в ArrayList. Я пробовал несколько разных способов, но я не могу заставить его остаться там.Добавить userinput в ArrayList java

import java.sql.Statement; 
import java.util.*; 

public class Head { 
public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 
    String lname, fname, y, m, d, x, dob, phone, place = null, info; 
    int choice; 

    Date today = new java.util.Date(); 
    java.sql.Date sqlDate = new java.sql.Date(today.getTime()); 

    ArrayList<Person>plist = new ArrayList<>(); 
    ArrayList<Faktura>flist = new ArrayList<>(); 

    Person p1 = new Person("Shaerer", "Lucas", "200307302232", "0702-523219", "Stockholm", "Her we put some info"); 
    Person p2 = new Person("Smith", "Jacob", "197609071464", "0761-617163", "Miami", "Some information about this person"); 

    plist.add(p1); 
    plist.add(p2); 

case 2: 
            System.out.println("Add info");    
            System.out.println("------------------------------------------------------"); 
              System.out.println(String.format("%-15s%-15s", p.getLname(), p.getFname())); 
            System.out.println("------------------------------------------------------"); 
            System.out.println(String.format("DateOfBirth: "+ p.getDob()));          
            System.out.println(String.format("Adress: "+ p.getPlace())); 
            System.out.println(String.format("Phone: "+ p.getPhone())); 
            System.out.println(String.format("Info: \n"+ p.getInfo())); 
            System.out.println("\n" + sqlDate); 
            System.out.println("Info: ");          
            info = scan.nextLine(); 
//          plist.add(this); 

//          for(int i = 0;i<plist.size(); i++){ 
//          List<Person>plist = Arrays.asList(plist); 

//          for (Person s : plist) 
//           plist.add(s); 

            break; 

Конструктор

public class Person { 
private String lname, fname, dob, phone, place, info; 

public Person(String lname, String fname, String dob, String phone, String place, String info){ 
    this.lname = lname; 
    this.fname = fname; 
    this.dob = dob; 
    this.phone = phone; 
    this.place = place; 
    this.info = info; 
} 
public String getLname(){ 
    return lname; 
} 
public String getFname(){ 
    return fname; 
} 
public String getDob(){ 
    return dob; 
} 
public String getPhone(){ 
    return phone; 
} 
public String getPlace(){ 
    return place; 
} 
public String getInfo(){ 
    return info; 
} 
public String toOutputFormat(){ 
    return this.fname + this.lname + this.dob + this.phone + this.place + this.info; 
} 
} 

У меня уже есть строки в «Info», но я хотел бы добавить новую информацию в «Info» (не заменить старые данные), так что, когда я иду проверить всю информацию о человеке Ther будет

«Старая» информация: ли

«Новая» информация: (если я мог бы получить дату прилипать здесь тоже было бы Awsome) Jada jada jada

Я пытался сделать это, но не повезло. Я даже не уверен, что вы можете сделать это ... Но я уверен, что если вы можете, это место, чтобы посмотреть :)

Спасибо за ваше время

+0

Можете ли вы создать am [MCVE] (http://stackoverflow.com/help/mcve) – StackFlowed

ответ

1

Это немного трудно понять что вы хотите сделать - но я предполагаю, что вы хотите изменить строку информации в классе Person - это может быть достигнуто путем добавления сеттера:

public setInfo(String newInfo){ 
    info = newInfo; 
} 

или даже добавляя:

public addInfo(String newInfo){ 
    info += newInfo; 
} 

используя его вот OKS как:

EDIT:

import java.util.*; 

public class Head { 
public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 
    String lname, fname, y, m, d, x, dob, phone, place = null, info; 
    int choice; 

    ArrayList<Person>plist = new ArrayList<>(); 
    ArrayList<Faktura>flist = new ArrayList<>(); 

    Person p1 = new Person("Shaerer", "Lucas", "200307302232", "0702-523219", "Stockholm", "Her we put some info"); 
    Person p2 = new Person("Smith", "Jacob", "197609071464", "0761-617163", "Miami", "Some information about this person"); 

    plist.add(p1); 
    plist.add(p2); 
    p1.setInfo("SomeThing new and exciting"); 
    p1.addInfo(" and exhilarating"); 
System.out.println(p1.getInfo()); 
    } 

Поскольку я не знаю, где вы собираетесь с этим - я просто предоставление пример. Выше кода добавит ваших двух человек в plist, а затем отредактирует их информационное поле.

+0

Большое спасибо. Извините, я так не объяснял. Пользователь сможет использовать уже запрограммированных лиц или добавить новые. Когда вы добавите человека, вы добавите имя, дату рождения, информацию и многое другое. «Информация» будет строкой, которая говорит что-то о человеке. Пользователь также должен иметь возможность добавлять новую информацию к этому конкретному человеку. Подумайте, как медицинский журнал или компания, которая отслеживает телефонные звонки и то, о чем они. – JJ72

+0

Что ж, значит, выше ответит на ваш вопрос? Возможно, вы захотите использовать информацию ArrayList ; а не просто строку, чтобы различать разные записи ... – CBudtz

+0

Я работаю над тем, что вы мне дали, ха-ха. Я новичок в этом, поэтому я не работаю очень быстро, я должен выяснить, как и где положить то, что вы мне дали. Идея с ArrayList информация звучит очень хорошо. Тогда я просто должен выяснить, как это сделать. Ха-ха, это никогда не заканчивается, правильно. Еще раз спасибо за ваше время и помощь. Большое спасибо :) – JJ72

Смежные вопросы