Java 蚂蚁字符串函数?

Java 蚂蚁字符串函数?,java,string,ant,Java,String,Ant,Ant是否有任何方法来处理字符串大小写/大写/非大写字符串操作?我看了PropertyRegex,但我不相信最后两个是可能的。还有别的吗?您可以使用该任务并使用支持jsr223的脚本语言,如javascript、jruby、jython等,。。。要进行字符串处理,请使用Ant任务: <target name="capitalize"> <property name="foo" value="This is a normal line that doesn't say m

Ant是否有任何方法来处理字符串大小写/大写/非大写字符串操作?我看了PropertyRegex,但我不相信最后两个是可能的。还有别的吗?

您可以使用该任务并使用支持jsr223的脚本语言,如javascript、jruby、jython等,。。。要进行字符串处理,请使用Ant任务:

<target name="capitalize">
    <property name="foo" value="This is a normal line that doesn't say much"/>

    <!-- Using Javascript functions to convert the string -->
    <script language="javascript"> <![CDATA[

        // getting the value
        sentence = project.getProperty("foo");

        // convert to uppercase
        lowercaseValue = sentence.toLowerCase();
        uppercaseValue = sentence.toUpperCase();

        // store the result in a new property
        project.setProperty("allLowerCase",lowercaseValue);
        project.setProperty("allUpperCase",uppercaseValue);

    ]]> </script>

    <!-- Display the values -->
    <echo>allLowerCase=${allLowerCase}</echo>
    <echo>allUpperCase=${allUpperCase}</echo>
</target>
更新以获取WarrenFaith的评论,将脚本分离到另一个目标中,并将属性从被调用目标传递回调用目标

从ant contrib罐中使用

<target name="testCallback">
    <antcallback target="capitalize" return="allUpperCase">
        <param name="param1" value="This is a normal line that doesn't say much"/>
    </antcallback>
    <echo>a = ${allUpperCase}</echo>
</target>
最终产量

   [echo] a = THIS IS A NORMAL LINE THAT DOESN'T SAY MUCH

虽然使用Java 6更容易,但它可以使用Java 5,但您必须提供脚本语言的实现,例如Rhino for Javascript。@JoseK:您知道如何在目标中分离脚本吗?当我这样做时,目标中的属性发生了更改,但之后旧值被恢复。我的问题是,我希望使主目标尽可能小,以便即使是非程序员也能够更改属性。Thanks@Warren:我尝试使用
antcall
调用分离的脚本。但是,根据文档,被调用目标设置的属性不会保留回调用项目。你是怎么尝试的?@JoseK:跟你一样。只需
antcall
和目标,它是在相同的xml中定义的。虽然
project
意味着整个ant运行,但情况似乎并非如此。如果你偶然发现了一个解决方案,请分享:)谢谢@乔塞克:太好了!工作完美!另见:
 <target name="capitalize">

        <property name="foo" value="${param1}"/>
   [echo] a = THIS IS A NORMAL LINE THAT DOESN'T SAY MUCH