Java 蚂蚁字符串函数?
Ant是否有任何方法来处理字符串大小写/大写/非大写字符串操作?我看了PropertyRegex,但我不相信最后两个是可能的。还有别的吗?您可以使用该任务并使用支持jsr223的脚本语言,如javascript、jruby、jython等,。。。要进行字符串处理,请使用Ant任务: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
<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