【发布时间】:2015-06-23 17:41:42
【问题描述】:
请看下面的代码--
String s11 ="!country=India ";
String[] ss =s11.split("((?<=[!&|])|(?=[!&|]))");
System.out.println(ss.length);
for(String s :ss) {
System.out.println(s);
}
在 Windows 上它提供
2
!
country=India
而在 Ubuntu 中它提供了
3
!
country=India
为什么会这样?
【问题讨论】:
-
两个平台的 Java 版本是多少?
-
新行是 Ubuntu 输出的一部分吗?
-
我认为 split 的行为在最近的 Java 版本中发生了变化。
-
您能否发布两个环境中的确切 JVM 版本 (
java -version)? -
ideone 也给出了 2 个不同的结果。 ideone.com/EeN5Ka(Java 7:sun-jdk-1.7.0_10)和ideone.com/e6NS0c(Java 8:sun-jdk-8u25)。绝对是 JVM 而不是操作系统相关的问题。