剛學mapreduce沒多久,在預設的輸入分片中,經常要對一行的資料進行劃分,如果資料的格式劃分的清除,在分割這一行資料的時候也就好劃分了,但是有時候,資料的格式並不規整,所以劃分起來就得多寫些**了。
例如:204001 01 02 03 07 10 25 07這種資料之間的間距是一樣的都是乙個空格的間距,所以在map中接受的資料可以直接通過value.split(」 「)就可以獲取這一行所有的資料了。
如果資料的間隔不是一樣的,例如:apr 23 11:49:54 hostapd: wlan0: sta 14:7d:c5:9e:fb:84這些資料之間的間距不是一樣的,如果通過value.split(」 「)來劃分
string line = "apr 23 11:49:54 hostapd: wlan0: sta 14:7d:c5:9e:fb:84";
string strs = line.split(" ");
for(string str : strs)
那麼輸出的結果就是
apr
2311:49
:54hostapd:
wlan0:
sta14:7d
:c5:9e
:fb:84
那麼在獲取的string陣列中取資料的時候就會得到一些空的字串。而split中的引數還可以傳遞乙個正規表示式,所以這裡可以通過正規表示式來解決。
string line = "apr 23 11:49:54 hostapd: wlan0: sta 14:7d:c5:9e:fb:84";
string strs = line.split("\\s++");
for(string str : strs)
這裡的\s是空格需要兩個\來轉移,++也就是多個的意思,這樣就可以劃分多個不同間隔的資料了。
結果:
apr
2311:49
:54hostapd:
wlan0:
sta14:7d
:c5:9e
:fb:84
sql中分割字串
set ansi nulls on set quoted identifier on goalter function dbo get strarraystrofindex str varchar 1024 要分割的字串 split varchar 10 分隔符號 index int 取第幾個元素 ...
C C 中分割字串
我最憐君中宵舞 道 男兒到死心如鐵 看試手,補天裂 解析http響應報文的時候,響應頭中除了第一行,其他行都是key value結構,怎麼高效方便地解析成map型別的資料呢?我首先想到的就是sscanf函式,於是寫了如下程式 include intmain 然後輸出卻是 sss 顯然不行,於是開始上...
關於在lotus domino中分割字串的問題!
以前用lotus domino為客戶寫的辦公自動化程式,出了問題 發現用lotus的 contains函式存在問題,當要判斷的字串太大時,就會報錯.這是以前的寫法 note acro contains sendto dim flag as variant flag evaluate note acr...