Your Java method returns a string, there is no way the XSLT processor can know that this string should be treated as an XPath expression and evaluated as such. You can do that if your processor offers an xx:evaluate() extension function (Saxon does, for example) - but you need to call it explicitly.
However, it's really not difficult to solve this problem in XSLT 2.0. Something like this (not tested):
<xsl:function name="f:matches-one-of" as="xs:boolean">
<xsl:param name="input" as="xs:string"/>
<xsl:param name="search" as="xs:string"/>
<xsl:variable name="results" as="xs:boolean*">
<xsl:analyze-string select="$search" regex='(\S*)|("[^"]*?)'>
<xsl:matching-substring>
<xsl:sequence select='contains($input, regex-group(1))
or contains($input, translate(regex-group(2), """", ""))'/>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:variable>
<xsl:sequence select="some $x in $results satisfies $x=true()"/>
</xsl:function>
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference