【问题标题】:How to format a label with a comma delimiter in reverse using JavaFX [duplicate]如何使用JavaFX反向格式化带有逗号分隔符的标签[重复]
【发布时间】:2019-03-16 21:59:52
【问题描述】:

所以基本上我想做以下事情:

   String s1 = "hello";

   for(int count = s1.length() -1; count >= 0; count--){
        System.out.printf("%c, ", s1.charAt(count));
    }

但在标签中执行此操作。如何格式化像 printf 这样的标签?如下所示,使用 setTextf 不会出错:

String s1 = "hello";
for(int count = s1.length() -1; count >= 0; count--){
        label1.setTextf("%c, ", s1.charAt(count));
    }

【问题讨论】:

  • Label 没有 setTextf() 方法。一个好主意是阅读Label 的官方 API 文档,这样您就可以更好地了解您应该期望它做什么。

标签: javafx formatting label settext


【解决方案1】:

printf() 方法专门用于将格式化的String 打印到输出控制台。

如果要将String格式化为其他用途,则需要使用String.format()方法:

String s1 = "hello";
for(int count = s1.length() -1; count >= 0; count--){
    label1.setText(String.format("%c, ", s1.charAt(count)));
}

但是,在您尝试执行的循环中执行此操作将导致单个 char 作为您的最终 Label 文本,因为每次调用 setText() 都会覆盖前一个。

相反,您应该使用StringBuilder 构建最终的String

String s1 = "hello";
StringBuilder sb = new StringBuilder();

for(int count = s1.length() -1; count >= 0; count--){
    sb.append(String.format("%c, ", s1.charAt(count)));
}

label1.setText(sb.toString());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2015-04-13
    • 1970-01-01
    • 2014-03-20
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多