Search code examples
javatostring

Java how to print "x" number of stars inside brackects


I need to print players and star they get, answer should be:
Create player...
Name: Player3
Stars: 4
Print: Player3(***)

Now I get this:
Create player...
Name: Player5
Stars: 4
()()()() Print: Player5(*)
(Above stars inside brackects)

here is my code:

import java.util.Random;

public class stars{
public static void main(String[] args){
    final Random r = new Random();


    String[] players = "Player1 player2 Player3 Player4 Player5".split(" ");
    for (int i=0; i<3; i++){
        String n = players[r.nextInt(players.length)];
        int s = r.nextInt(5) + 1;
        System.out.println("Create player...");
        System.out.println("Name: " + n);
        System.out.println("Stars: " + s);
        StarTeams st = new StarTeams(n,s);
        System.out.println("Print: " + st);
        System.out.println("");
}
}
}
class Teams{
private String name;

public Teams(String name){
    this.name = name;
}

public String toString(){
    return name;
}
}
class StarTeams extends Teams{
private int stars;

public StarTeams(String name, int stars){
    super(name);
    this.stars = stars;
}

public String toString(){
String rm = super.toString();

this.stars=stars;
    int t = stars;
    for (int i=0; i<t;i++){
//      System.out.print("*");

System.out.print("(" + "*" + ")");

}

  return  rm + "(*)";

} }


Solution

  • made changes to StarTeams.toString() method as :

    public String toString(){
    String rm = super.toString();
    
    this.stars=stars;
    int t = stars;
    String s ="";
    for (int i=0; i<t;i++){
    //      System.out.print("*");
        s+="*";
    
    }
    
    return  rm + "("+ s +")";
    } }