看板 C_Sharp 關於我們 聯絡資訊
我現在有一文字檔內容大略如下: V 0.01 1.01 0.02 V 1.33 2.21 0.51 V 6.70 1.23 3.50 . . . f 1/1/1 2/2/1 3/3/1 4/4/1 f 5/4/2 6/1/2 7/2/2 8/3/2 f 1/4/3 4/1/3 6/5/3 5/6/3 . . . 內容大約有幾萬行這種資料,要對V,f的資料做分類,並且要對每行字串做切割,之後放 到所屬的陣列V,f。 ex: V 0.01 1.01 0.02,由第一個字元辨識出屬於V的資料,切割出0.01,1.01,0.02等數 值,並將之放到V之陣列。f也是一樣。 1.我現在的問題卡在,不知道如何辨識每行字串的第一個字元,以進行分類。 2.分類後不知道該怎麼對字串切割出各個數值,以放到所屬陣列中。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.32.71
Ansaga:List<string> VnF = new List<string>(); 11/26 14:57
Ansaga:在迴圈內 11/26 14:57
Ansaga:VnF.add(sr.ReadLine()); 11/26 14:58
Ansaga:最後用split分開空白 然後存成你要的形式? 11/26 14:58
Ansaga:這樣可以嗎? 11/26 14:58
BWF:我試看看 11/26 16:06
BWF:那要怎麼分辨第一個字元呢? 11/26 16:09
Ansaga:if(Vnf[0][0] ==V) 11/26 16:12
Ansaga:大概像這樣 11/26 16:13
Ansaga:更正 =="V" 11/26 16:14
BWF:所以你的方法是先對每一行做切割後儲存,然後再依照切割後,的 11/26 17:10
BWF:第一個字元做判斷,進而做分類囉? 11/26 17:10
Ansaga:隨便你啊 我不知道你還有什麼工具 11/26 18:05
BWF:因為這個文字檔裡面還有其他資料,有沒有辦法READLINE之後,直 11/26 21:05
BWF:接抓到字串的第一個字元,先做判斷? 11/26 21:06
Ansaga:你試一次就知道了 11/27 09:39
ssccg:string line = sr.ReadLine(); 11/27 14:49
ssccg:line.StartWith("V") or line.ToCharArray(0,1)[0] == 'V' 11/27 14:49
BWF:原來還有這種判斷字頭的方法啊!!感謝啊 11/27 21:06
cloudsan:4.0之後可以用:File.ReadLines(@"XXX.txt").Where( 11/28 19:06
cloudsan:v => v.StartsWith("V")).ToArray();取到所有相關字串 11/28 19:06
BWF:有點看不懂上述的程式碼...,可以稍微講解一下嗎? 11/28 21:59
Ansaga:linq 11/28 23:11
cloudsan:sorry沒注意到,readline會傳回所有行的集合的IEnumable 12/01 15:46
cloudsan:.where之後取得那個集合裡滿足這個條件的,在toarray 12/01 15:46
cloudsan:其實也可以不用toArray啦,看你需要 12/01 15:46
BWF:我還不會泛型.....,借的書沒一本有講到這個= = 12/01 18:25
cloudsan:那先用先人講的吧XD 12/03 21:16
cloudsan:講錯,用先人感覺不太對= =,前面的人說的:p 12/03 21:16