在 Ant 中拆分字符串

Split a string in Ant

我需要使用 Ant 拆分和操作字符串。

要求是:我的 ant 文件中有以下属性

  1. 用户名=用户名
  2. 密码=密码
  3. ConnectString=jdbc.oracle:thin@testdb:1521:db11g

我需要操纵 ConnectString 来: jdbc.oracle:瘦:userName/password@testdb:1521:db11g

任何指点都会很有帮助。

为什么不那样构建您的 ConnectString 属性? :

 <property name="UserName" value="userName"/>
 <property name="Password" value="password"/>
 <property name="ConnectString" value="jdbc.oracle:thin:${UserName}/${Password}@testdb:1521:db11g"/>

否则使用内置 javascript 引擎的脚本任务 (JDK >= 1.6.0_06) 和 ant api 进行 属性 操作,f.e。 :

<project>
 <property name="UserName" value="userName"/>
 <property name="Password" value="password"/>
 <property name="ConnectString" value="jdbc.oracle:thin@testdb:1521:db11g"/>

 <script language="javascript">
  a = project.getProperty('ConnectString').split('@')

  // to overwrite existing ConnectString property use
  // project.setProperty('ConnectString' ...);
  project.setProperty('foo', a[0] + ':' + project.getProperty('UserName') +
   '/' + project.getProperty('Password') + '@' + a[1]);
 </script>

 <echo>$${foo} => ${foo}</echo>
</project>

输出:

[echo] ${foo} => jdbc.oracle:thin:userName/password@testdb:1521:db11g