我试图在Java中将TextFlow
转换为String
。
TextFlow flow = new TextFlow();
Text t1 = new Text(visibility.get(attribute.getVisibility()));
Text t2 = new Text(attribute.getName());
t2.setUnderline(true);
Text t3 = new Text(" : " + attribute.getType());
flow.getChildren().addAll(t1, t2, t3);
这是我制作TextFlow
的方式,我试图将其转换为一个字符串,其中所有三个Text
项目彼此相邻。我该怎么做? toString()
无效。
答案 0 :(得分:1)
TextFlow
s不支持此功能。您需要通过连接text
类型子项的所有Text
属性来自行实现:
StringBuilder sb = new StringBuilder();
for (Node node : flow.getChildren()) {
if (node instanceof Text) {
sb.append(((Text) node).getText());
}
}
String fullText = sb.toString();
答案 1 :(得分:0)
此实用程序方法可能有效。
public static String getStringFromTextFlow(TextFlow tf) {
StringBuilder sb = new StringBuilder();
tf.getChildren().stream()
.filter(t -> Text.class.equals(t.getClass()))
.forEach(t -> sb.append(((Text) t).getText()));
return sb.toString();
}