And a complementary remark: You can also use the built-in function out:format (it will be optimized better than Java functions):
let $string := 'Format string: %1$d - %2$s' let $i := 1 let $j := 'text' return out:format($string, $i, $j)
For formatting numbers, XQuery provides the function fn:format-number:
format-number(1, '0000')
Best, Christian
On Tue, Apr 23, 2019 at 6:41 AM Johannes Bauer johannes.bauer@tanner.de wrote:
Hi Luan,
try this:
declare namespace java = "java:java.lang.String";
let $string := 'Format string: %1$d - %2$s' let $i := 1 let $j := 'text' let $args := ($i, $j)
return java:format($string, $args)
Best regards Johannes
Am 23.04.2019 um 06:29 schrieb Luan Bui:
Hello all, How can I call a method with variable arguments in BaseX with Java binding? I am trying to do this:
let $string := 'Format string: %1$d - %2$s' let $i := 1 let $j := 'text' return Q{java.lang.String}format·java.lang.String·java.lang.Object*($string, $string, $i, $j)
However, I got the error: [XPDY0002] {java.lang.String}format·java.lang.Stri...: Context is undeclared. Thank you for your time.