下面的单元测试能够通过,这可能不符合直觉。
原因在于"\"在这里被JVM解释为转义符,所以如果当你需要一个"\",在Java里面同时需要为JVM提供一个"\"用于转义,这样你就得到了一个字符"\\"。
- @Test
- public void passed() {
- String a = "\\";
- assertFalse(a.length() == 2);
- assertTrue(a.length() == 1);
- String b = "\\\\";
- assertTrue(b.length() == 2);
- }
原因在于"\"在这里被JVM解释为转义符,所以如果当你需要一个"\",在Java里面同时需要为JVM提供一个"\"用于转义,这样你就得到了一个字符"\\"。