Home > Net >  Print a specific cell from a string array
Print a specific cell from a string array

Time:02-10

I've created a class that includes people data named "Datiutente" and an object based on that class named "du". Every person has a name and a surname (with the set/get methods).

I want to create a system that can provide the user information on a specific person based on the position which they are stored in the array.

I tried using a variable named vd to ask the user which person wanted to visualize based on the position that a person gained in the array (inserted in the for cycle), but when I try to print with vd it just prints "Name: null". Same if I change "vd" to "1". It always prints "Null".

(Yes, I tested this when I already inserted some data.)

Here's the full code:


package appartamento;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Appartamento {
    public static void main(String[] args) throws IOException {
        InputStreamReader input = new InputStreamReader(System.in);
        BufferedReader keyb = new BufferedReader(input);
        boolean attiva = true;
        
        do {
            System.out.println("what do you want to do?");
            System.out.println("1 - check for a person");
            System.out.println("2 - Add person");
            int choice = Integer.parseInt(keyb.readLine());
            Datiutente du[] = new Datiutente[10];
        
            if (choice == 2){
                System.out.println("How many people?");
                int hm = Integer.parseInt(keyb.readLine());
       
                for (int i=0;i<hm;i  ){
                    du[i] = new Datiutente();
                    System.out.println("insert name:");
                    du[i].setName(keyb.readLine());
                    System.out.println("insert surname");
                    du[i].setSurname(keyb.readLine());
                }  
            }
        
            if (choice == 1){
                System.out.println("which person are you searching?");
                int vd = Integer.parseInt(keyb.readLine());
                System.out.println("position: "   i);
                System.out.println("Name: "   du[i]);
                System.out.println("Surname: "   du[i]);
            }
        } while (attiva = true);
    }
}

and the class "Datiutente":

package appartamento;

public class Datiutente {
    private String name;
    private String surname;
    private String codfis;
    
    public void setName(String name){
        this.name = name;
    }
    
    public String getName(){
        return name;
    }
    
    public void setSurname(String surname){
        this.surname = surname;
    }
    
    public String getSurname(){
        return surname;
    }
}

CodePudding user response:

In every iteration you define the Datiutente du[] = new Datiutente[10];, so du is reset to {null,...,null} and the data saved in the previous iteration are replaced;
Try to define the array before the loop statement.

CodePudding user response:

I found a way here:

You need to insert values on object creation, you can also use hashmaps

hashmap will benefit you more I think.

Code sample to fix your stuff.

class GFG {    
    public static void main(String args[]){

    // Declaring an array of student
    Student[] arr;

    // Allocating memory for 2 objects
    // of type student
    arr = new Student[2];

    // Initializing the first element
    // of the array
    arr[0] = new Student(1701289270, "Satyabrata");

    // Initializing the second element
    // of the array
    arr[1] = new Student(1701289219, "Omm Prasad");

    // Displaying the student data
    System.out.println(
        "Student data in student arr 0: ");
    arr[0].display();

    System.out.println(
        "Student data in student arr 1: ");
    arr[1].display();
}
}


class Student {

public int id;
public String name;

// Student class constructor
Student(int id, String name)
{
    this.id = id;
    this.name = name;
}

// display() method to display
// the student data
public void display()
{
    System.out.println("Student id is: "   id   " "
                         "and Student name is: "
                         name);
    System.out.println();
}
}
  •  Tags:  
  • Related