java - Ant 中 Javascript 拆分的奇怪结果

标签 java javascript ant split

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

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

$ cat line
a:
$ od -a line
0000000   a   :  nl
0000003

And when I run the following build file:

<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

拆分文字返回 2,拆分从文件读取的字符串返回 1。

有人可以解释一下这里出了什么问题以及如何解决它吗?

我使用 2012 年 7 月 18 日编译的 Apache Ant 1.7.1 版本对其进行了测试。

最佳答案

literal 是一个 JavaScript 字符串。 readline 是一个 Java 字符串。两种不同的分割方法的行为不同。 Java 文档说...因此尾随空字符串不包含在结果数组中。

关于java - Ant 中 Javascript 拆分的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244995/

相关文章:

java - 何时使用 maven 依赖管理和依赖

java - 运行使用 Ant 构建的 Java 时出现缺少类错误

java - 有人可以举例说明 as400 dataqueue 类中的 addDataQueueListener()

java - Android 编程中的最终变量

javascript - Vue 路由器按钮不可点击,因为设置不正确

javascript - VUEJS 使用 "this"进行组件引用

javascript - 如何添加 :after in javascript

tomcat - JBWEB000250 : Child container with name already exists

jsp - 使用gradle构建运行tomcat jasper任务(jspc)

java - Maven docker缓存依赖