在将字符插入字符串时进行循环?

时间:2014-01-21 00:14:46

标签: java string loops

我正在制作一个新代码,我的目标是制作你按下的任何键让我的小卡车“前进”。 我试图通过在我的绳子上添加空格来做到这一点,这是我的卡车。

String truck = "<o><o>-<o>~|#|¬";

    truck = new StringBuffer(truck).insert(0, " ").toString();

    System.out.println(truck);

我想知道如何对此进行“循环”,在其中添加空格和您按下的键数量。 感谢您的阅读,祝您度过愉快的一天。

4 个答案:

答案 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)。