Ant中Javascript拆分的奇怪结果

Ant中Javascript拆分的奇怪结果,java,javascript,ant,split,Java,Javascript,Ant,Split,Javascript的split函数在拆分文本和拆分从文件读取的字符串时表现不同 我有以下带有字符、冒号和换行符的文件: $ cat line a: $ od -a line 0000000 a : nl 0000003 $cat线路 a: $od-一行 0000000A:nl 0000003 当我运行以下生成文件时: <project name="project"> <script language="javascript"> <![CDAT

Javascript的
split
函数在拆分文本和拆分从文件读取的字符串时表现不同

我有以下带有字符、冒号和换行符的文件:

$ cat line a: $ od -a line 0000000 a : nl 0000003 $cat线路 a: $od-一行 0000000A:nl 0000003 当我运行以下生成文件时:

<project name="project">
  <script language="javascript">
    <![CDATA[
      importClass(java.io.BufferedReader);
      importClass(java.io.File);
      importClass(java.io.FileReader);

      var literal = "a:";
      var readline = new BufferedReader(new FileReader(new File("line"))).readLine();

      project.log("literal: '" + literal + "' -> " + literal.split(":").length);
      project.log("readline: '" + readline + "' -> " + readline.split(":").length);
    ]]>
  </script>
</project>

我得到以下结果:

$ ant -f split.xml Buildfile: split.xml literal: 'a:' -> 2 readline: 'a:' -> 1 BUILD SUCCESSFUL Total time: 0 seconds $ant-f split.xml 构建文件:split.xml 文字:“a:”->2 阅读行:“a:”->1 建设成功 总时间:0秒 拆分文本返回2,拆分从文件读取的字符串返回1

有人能解释一下这里出了什么问题,我如何解决它吗


我用2012年7月18日编译的ApacheAnt版本1.7.1测试了它。

literal
是一个JavaScript字符串
readline
是一个Java字符串。这两种不同的拆分方法表现不同。Java文档说。。。因此,结果数组中不包括尾随的空字符串。

你说得对。Java做了不可想象的事情。多么愚蠢的API错误啊。