将新的 String 列添加到 StringBuilder

问题描述

我想将吉他指法表显示为字符串,但是将制表符显示为字符串时遇到问题。 想要的样子:

--------
--------
--------
--------
--------
3-1-2--3

我得到的是:

-
-
-
-
-
3-
-
-
-
-
1-

把每一列想象成一个片段。当我浏览片段时,我为每个片段添加一个新列,但是我无法向字符串添加新列,它只会转到新行。有没有人有更好的想法来解决这个问题,或者解决这个打印问题? 预先感谢您的时间和精力!

解决方法

谢谢大家的回复,我成功了,如VM所说。我先准备好每一行,然后一次打印,效果很赞。

public static String parseSongToTab() {
StringBuilder stringBuilder = new StringBuilder();
for (Fragment fragment : loadedSong.getFragments()) {
  GuitarString gs = GuitarString.valueOf(fragment.getString().toUpperCase());
  createTabColumn(gs,fragment.getFret());
}
stringBuilder.append(stringBuilderHighE).append("\n")
    .append(stringBuilderB).append("\n")
    .append(stringBuilderG).append("\n")
    .append(stringBuilderD).append("\n")
    .append(stringBuilderA).append("\n")
    .append(stringBuilderLowE);
return stringBuilder.toString();

} 创建标签:

private static void createTabColumn(GuitarString guitarString,Integer fret) {
switch (guitarString) {
  case LOW_E:
    stringBuilderLowE.append(fret);
    stringBuilderA.append("-");
    stringBuilderD.append("-");
    stringBuilderG.append("-");
    stringBuilderB.append("-");
    stringBuilderHighE.append("-");
    addSpaceForEverySecond();
    break;
  case A:
    stringBuilderLowE.append("-");
    stringBuilderA.append(fret);
    stringBuilderD.append("-");
    stringBuilderG.append("-");
    stringBuilderB.append("-");
    stringBuilderHighE.append("-");
    addSpaceForEverySecond();
    break;
  case D:
    stringBuilderLowE.append("-");
    stringBuilderA.append("-");
    stringBuilderD.append(fret);
    stringBuilderG.append("-");
    stringBuilderB.append("-");
    stringBuilderHighE.append("-");
    addSpaceForEverySecond();
    break;
  case G:
    stringBuilderLowE.append("-");
    stringBuilderA.append("-");
    stringBuilderD.append("-");
    stringBuilderG.append(fret);
    stringBuilderB.append("-");
    stringBuilderHighE.append("-");
    addSpaceForEverySecond();
    break;
  case B:
    stringBuilderLowE.append("-");
    stringBuilderA.append("-");
    stringBuilderD.append("-");
    stringBuilderG.append("-");
    stringBuilderB.append(fret);
    stringBuilderHighE.append("-");
    addSpaceForEverySecond();
    break;
  case HIGH_E:
    stringBuilderLowE.append("-");
    stringBuilderA.append("-");
    stringBuilderD.append("-");
    stringBuilderG.append("-");
    stringBuilderB.append("-");
    stringBuilderHighE.append(fret);
    addSpaceForEverySecond();
    break;
  default:
    stringBuilderLowE.append("-");
    stringBuilderA.append("-");
    stringBuilderD.append("-");
    stringBuilderG.append("-");
    stringBuilderB.append("-");
    stringBuilderHighE.append("-");
    addSpaceForEverySecond();
    break;
}

}