Java 如何打印 "x" 括号内的星星数

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

我需要打印他们得到的球员和明星,答案应该是:
创建播放器...
姓名:Player3
星星:4
打印:Player3(***)

现在我明白了:
创建播放器...
姓名:Player5
星星:4
()()()() 打印:Player5(*)
(括号内的星星上方)

这是我的代码:

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 + "(*)";

} }

将 StarTeams.toString() 方法更改为:

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 +")";
} }
public String toString(){
    String rm = super.toString();

    this.stars=stars;
    int t = stars;
    // replaced loop with this
    String strz = new String(new char[t]).replace('[=10=]', '*');

    return  rm + "(" + strz + ")";
}

刚刚更改了 StarTeams 中的 toString 方法。