如何使用 JavaFX 反向格式化带有逗号分隔符的标签
How to format a label with a comma delimiter in reverse using JavaFX
所以基本上我想做以下事情:
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));
}
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());
所以基本上我想做以下事情:
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));
}
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());