cvxz
cvxz

Reputation: 31

Java string array with setter getter

I wanted to create a simple program for user to insert 3 strings to a private string array in a class and then print it back by creating a new object using object reference but I think I am facing problem in the setter/getter.(Pretty new to class and setter/getter) Here is what I have so far:

import java.util.Scanner;
public class Stringtest {
public static void main(String[] args)
{   Scanner input=new Scanner(System.in);


   Stringer Strung=new Stringer();

    System.out.println("Strings:"+Strung.print());


}
}
class Stringer
{   Scanner input=new Scanner(System.in);
    private String[] aa=new String[3];
    aa[0]="zero";
    aa[1]="one";
    aa[2]="two";

    Stringer()
    {}

{  System.out.println("Please enter 3 strings:");

    for(int i=0;i<4;i++)
    {
        aa[i]=input.next();
    }
}

public  void setaa(String[] a)
{
    aa=a;
}

public String[] getaa()
{
    return aa;
}

public void print(String[] a)
{
    for(int b=0;b<4;b++)
    {
        System.out.printf("%s",a[b]);
    }
}

}

Upvotes: 2

Views: 3789

Answers (1)

KJTester
KJTester

Reputation: 407

  1. Due to populating the array while creating a class instance, you don't require any setters. The only getter requires.

  2. Divide the logic from the runner.

  3. Always use array.length() while looping or use a simple for loop otherwise you'll be getting an indexOfBoudException error.

  4. Didn't get why you are using printf() while printing results.

    My solution:

    import java.util.Scanner;
    
    public class App {
        public static void main(String[] args) {
            App.run();
        }
    
        private static void run() {
            Stringer stringer = new Stringer();
            stringer.print(stringer.getStrings());
        }
    }
    
    class Stringer {
    
        private String[] strings = new String[3];
    
        Stringer() {
            System.out.println("Please enter 3 strings:");
            for (int i = 0; i < 4; i++) {
                Scanner scanner = new Scanner(System.in);
                strings[i] = scanner.next();
            }
        }
    
        String[] getStrings() {
            return strings;
        }
    
        void print(String[] strings) {
            System.out.println("Strings are:");
            for (String string : strings) {
                System.out.println(string);
            }
        }
    }
    

Upvotes: 1

Related Questions