Brief introduction to Java String Split 【簡單介紹下Java String Split】
阿新 • • 發佈:2017-05-08
a-z include cte eve class some sim string arr
Split is a common function in Java. It split a full string to an array based on delimeter.
For example, split "a:b:c" with ":" results in [a, b, c]
In some scenario, it‘s better to keep the delimeter instead of discard it while splitting.
Here are some strategies.
分割(split) 是java裏一個常用的函數,它根據分隔符將完整的字符串切分成數組
比如 "a:b:c"通過":"切分會得到數組[a, b, c]
然而某些場景下,可能我們想要保留分隔符
這裏是一些保留分隔符的方法
System.out.println(Arrays.toString("a:b:c".split(":"))); //normal split
//[a, b, c]
System.out.println(Arrays.toString("a:b:c".split("(?=:)"))); //look behind
//[a, :b, :c]
System.out.println(Arrays.toString("a::b:c".split("(?=:)"))); //look behind
//[a, :, :b, :c]
System.out.println(Arrays.toString("a:b:c".split("(?<=:)"))); //look ahead
//[a:, b:, c]
System.out.println(Arrays.toString("a:b:c".split("(?!:)"))); //look ahead
//[a:, b:, c]
System.out.println(Arrays.toString("a:b:::c".split("(?!=:)"))); //look bothway
//[a, :, b, :, :, :, c]
System.out.println(Arrays.toString("a:b:::c".split("(?<=:)|(?=:)"))); //look bothway
//[a, :, b, :, :, :, c]
Look ahead 前向結合
delimeter will be attached to the previous string
分隔符會附加在前向字符串後面
Look behind 後向結合
delimeter will be attached to the subsequent string
分隔符會附加在後向字符串前面
Look bothway 完全分離
similar to normal split, but every delimeter will be included in the array
和普通分割很像,但每個分隔符也會出現在數組中
Some interesting usage
一些有趣的用法
System.out.println(Arrays.toString("1a2bb3ccc".split("(?<=[a-z])(?=[0-9])"))); //digit + [a-z]characters
//[1a, 2bb, 3ccc]
System.out.println(Arrays.toString("1_1112_222aditional3_333".split("(?<=_..)"))); //"_" with 2 more chars
//[1_11, 12_22, 2aditional3_33, 3]
System.out.println(Arrays.toString("1_1112_222aditional3_3333".split("(?<=_.{3})"))); //"_" with 3 more chars
//[1_111, 2_222, aditional3_333, 3]
System.out.println(Arrays.toString("1_1112_222aditional3_33".split("(?<=_.{3})"))); //"_" with 3 more chars
//[1_111, 2_222, aditional3_33]
Brief introduction to Java String Split 【簡單介紹下Java String Split】