【问题标题】:Add new column of String to StringBuilder将新列的字符串添加到 StringBuilder
【发布时间】:2021-09-04 08:47:04
【问题描述】:

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

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

我得到的是:

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

将每一列想象成一个片段。当我浏览片段时,我为每个片段添加一个新列,但是我无法向字符串添加一个新列,它只是进入新行。有没有人有更好的想法如何解决这个问题,或者解决这个打印问题? 提前感谢您的时间和精力!

【问题讨论】:

  • 分享你尝试过的代码
  • 我打赌你使用的是println,它会在每个文本后插入一个换行符。编辑您的问题以添加您的代码
  • 您似乎首先打印行的所有第一个字符,然后打印行的第二个字符,您应该打印整行
  • 我的建议是创建一个方法来准备相应的行然后打印它。

标签: java string stringbuilder


【解决方案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;
}

}

【讨论】:

    猜你喜欢
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2020-03-08
    • 2020-06-18
    相关资源
    最近更新 更多