Java 需要与String.replaceAll(…)等效的绑定

Java 需要与String.replaceAll(…)等效的绑定,java,javafx,Java,Javafx,我需要创建一个绑定,它允许我使用绑定执行与String.replaceAll(…)等效的操作。我有一个字符串“${driver}driving${name}”,我希望用特定属性替换键“${driver}”等。我还希望返回的属性能够添加侦听器,这样当driverProperty或其他更改时,返回的属性值将更改,而无需重新调用getString() 使用。这需要一个函数提供字符串和要观察的值列表;如果这些值中的任何一个发生更改,则绑定被标记为无效 你的问题我不太清楚,但我想你可以这样做 String

我需要创建一个绑定,它允许我使用绑定执行与
String.replaceAll(…)
等效的操作。我有一个字符串“${driver}driving${name}”,我希望用特定属性替换键“${driver}”等。我还希望返回的属性能够添加侦听器,这样当
driverProperty
或其他更改时,返回的属性值将更改,而无需重新调用getString()

使用。这需要一个函数提供
字符串
和要观察的值列表;如果这些值中的任何一个发生更改,则绑定被标记为无效

你的问题我不太清楚,但我想你可以这样做

StringBinding formattedString = Bindings.createStringBinding(
    () -> getString(derby), 
    derby.settingsProperty(), 
    nameProperty, numberProperty, 
    driverProperty, groupProperty);
现在你可以做像这样的事情

formattedString.addListener((obs, oldFormattedString, newFormattedString) -> {
    // invoked any time the formatted string changes...
});


所以请问您尝试了什么?我查看了Javadocs,除了concat()之外,找不到任何其他内容,我很确定这只是将字符串添加在一起。我想我可以做一些定制绑定的事情,但我不确定从哪里开始。你能至少展示一下上下文吗?不清楚你的意思。如果您有一个
StringProperty
,您可以将其设置为新值,例如……谢谢,这正是我要找的!
formattedString.addListener((obs, oldFormattedString, newFormattedString) -> {
    // invoked any time the formatted string changes...
});
Label label = new Label();
label.textProperty().bind(formattedString);