如何用字符替换整数,数组,循环,Java



我是Java新手,目前,我正在学习数组和循环。我有一个任务,我不知道该怎么办,我需要一些帮助。

写一个Stars类
在这个类中,声明一个int类型的count字段星星。

重新定义Stars类中的toString方法。它应该返回星系间公会接受格式的恒星数量升级。

1000星- X字符,
100星- Y字符,
10星- Z字符,
1星- *.

几个例子:

1001 * - X*,
576 * - YYYYYZZZZZZZ******,
必须使用最小字符数。也就是说,例如101颗星必须用Y*表示,而不能用ZZZZZZZZZZ *。

我制作了一个模板,但不幸的是,我不知道如何进行所有的计算。

public class Stars {
int count;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}

@Override
public String toString() {  
return Integer.toString(count);
}

public static void main(String[] args) {
Stars stars = new Stars();
stars.setCount(2253); // ZZZ***
System.out.println(stars);
System.out.println(stars.getCount());
}
}

我有一个想法,创建一个数字1000,100,10,1的数组,然后计算使用了多少个数字。

不幸的是,我不知道如何把1000变成X我不知道,是否2在**.

请检查我的草稿,也许你能给我一些建议或提示。

public class Test {
public static void stars(int amount)
{
int[] number = new int[]{ 1000, 100, 10, 1 };
int[] numberCounter = new int[4];

for (int i = 0; i < 4; i++) {
if (amount >= number[i]) {
numberCounter[i] = amount / number[i];
amount = amount - numberCounter[i] * number[i];
}
}
for (int i = 0; i < 4; i++) {
if (numberCounter[i] != 0) {
System.out.print(numberCounter[i]);
}
}
}

public static void main(String argc[]){
int amount = 2253; // should be : XXYYZZZZZ***
stars(amount);
}
}
// Or maybe I can use this formula, thank you
//int units = count % 10;
//int tens = (count / 10) % 10;
//int hundreds = (count / 100) % 10;
//int thousands = (count / 100) % 10;

这样可以:

int x = 101;
StringBuilder builder= new StringBuilder();
while (x>1000) {
builder.append("X");
x-=1000;
}
while (x<1000&&x>100) {
builder.append("Y");
x-=100;
}
while (x<100&&x>10) {
builder.append("Z");
x-=10;
}
while (x<10 && x!=0) {
builder.append("*");
x-=1;
}
System.out.println(builder.toString());

点是在一个间隔内的星号数目,向字符串中添加一个字符,然后减少这个数目。

最新更新