我正在制作一个新代码,我的目标是制作你按下的任何键让我的小卡车“前进”。 我试图通过在我的绳子上添加空格来做到这一点,这是我的卡车。
String truck = "<o><o>-<o>~|#|¬";
truck = new StringBuffer(truck).insert(0, " ").toString();
System.out.println(truck);
我想知道如何对此进行“循环”,在其中添加空格和您按下的键数量。 感谢您的阅读,祝您度过愉快的一天。
答案 0 :(得分:2)
您可以通过多种方式执行此操作,例如......
你可以攻击问题,例如......
StringBuilder sb = new StringBuilder(truck);
for (int index = 0; index < length; index++) {
sb.append(0, " ");
}
truck = sb.toString();
您可以编写一个产生“空”String
public String createPath(int length) {
StringBuilder sb = new StringBuilder(length);
for (int index = 0; index < length; index++) {
sb.append(" ");
}
return sb.toString();
}
然后简单地附加结果,例如......
truck = createPath(n) + truck;
或者您可能非常棘手,只需使用String.format
...
public String createPath(int length) {
return String.format("%" + length + "s", "");
}
答案 1 :(得分:0)
此方法生成您要打印的String。由于你没有提到你想听的方式,所以省略了它。
public String truck(int n) {
String truck = "<o><o>-<o>~|#|¬";
StringBuilder sb = new StringBuilder();
for (int i = n; i-->0;)
sb.append(' ');
sb.append(truck);
return sb.toString();
}
更普通形式的循环是:
for (int i = 0; i < n; i++)
sb.append(' ');
(我更喜欢前者,因为n
的计算只进行一次,我必须在循环声明中只指定一次循环变量。)
答案 2 :(得分:0)
没有进入捕获按键或其中任何一个的细微差别,你可能只是希望while
循环继续“驱动”你的卡车,直到用户退出(或其他)。一个非常简单的可能看起来像这样:
String truck = "<o><o>-<o>~|#|¬";
int count = 0;
while(true) { // This is your loop
int n = 1; // or capture some user input, etc...
// Then "move" the truck
StringBuilder sb = new StringBuilder();
for(int i=0; i<n+count; i++) {
sb.append(" ");
}
sb.append(truck);
System.out.println(sb.toString());
count = count + n;
}
答案 3 :(得分:0)
尝试这样做:
public String truck(int countOfHits){
StringBuilder sb = new StringBuilder("<o><o>-<o>~|#|¬");
sb.reverse();
for(int i = 0; i <= countOfHits; i++){
sb.append(" ");
}
return sb.reverse().toString();
}
如果您考虑一下,您会发现这会将O(n²)解变为O(n)。