微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将新的 String 列添加到 StringBuilder

如何解决将新的 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;
}

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。