note icon indicating copy to clipboard operation
note copied to clipboard

String的split方法,遇到的坑

Open Yhzhtk opened this issue 10 years ago • 0 comments

public class StringSplitTest {
    @Test
    public void test() {
        String s = "aba"; // 很明显,这是2
        assertEquals(2, s.split("b").length);
        s = "abab"; // 注意,这是2
        assertEquals(2, s.split("b").length);
        s = "abab "; // 这才是3
        assertEquals(3, s.split("b").length);
        s = ""; // 这是1
        assertEquals(1, s.split("b").length);
        s = "b"; // 此处重点注意,不是2而是0
        assertEquals(0, s.split("b").length);
        s = "a"; // 这是1
        assertEquals(1, s.split("b").length);
        s = "ba"; // 这是2
        assertEquals(2, s.split("b").length);
    }
}

由此看出,split前面的空白会保留,末尾的空白不会保留。split 本身结果是 0。

Yhzhtk avatar Jan 20 '15 04:01 Yhzhtk