作者name2name2 (yang~hi)
看板C_Sharp
標題Re: [問題] 不知要怎麼找關鍵字..
時間Tue Jun 28 16:08:52 2016
詳細說一下過程好了,
整個區塊中的data都代表同一個變數也只有一個變數,
整個程式碼只是在讓data這個變數的值變動而已,
變數可以想成籃子,值可以想成物品,
所以整個區塊中的籃子都是同一個,
程式只是把藍子裡的東西換成不同物品而已
所以從頭到尾名稱為data的這個籃子只有一個而已
1F:推 name2name2: string data = "ABCDE@12345";06/28 12:29
這邊設一個變數叫data,
(創造一個叫做data的籃子)
然後用等號把 "ABCDE@12345" 這個字串質賦值給data這個變數,
(把"ABCDE@12345"這個東西放進data這個籃子)
所以現在data這個變數的值是 "ABCDE@12345"
(data這個籃子裡裝的物品目前是 ABCDE@12345)
2F:→ name2name2: data = data.Substring(6); 06/28 12:30
接下來這行程式會先做等號右邊的動作,
目前data的值是ABCDE@12345
所以右邊會對data的目前值ABCDE@12345
去做Substring(6) 會得到 12345 這個字串值
所以右邊的動作結果會得到一個純字串值"12345"
然後等號會把右邊做好的結果"12345"這個值
賦值給data本身,
賦值的意思相當於覆蓋,
以籃子物品來說賦值就是把籃子裡原本的東西換成另個東西,
所以
等號會
把data原本的值ABCDE@12345
改成右邊的結果值也就是 12345
所以現在data的值變成12345了
3F:→ name2name2: Console.WriteLine(data); //得到12345 這樣? 06/28 12:30
最後印出目前data值
4F:推 aacced: 數字前面固定是@嗎? 06/28 14:31
5F:→ aacced: data = data.Substring(data.Indexof("@", 1) + 1); 06/28 14:31
這邊等號右邊內層括號裡的動作最先做,
data.indexof(@)會取得"@"這個符號所在的位置,
+1就再把位置+1,
所以外層括號最後結果就是得到@的位置+1 (+1就是下一個字元的位置),
也就是1所在的位置,
然後整個substring就從1這個位置往後切到字串結尾,就得到12345
可以見
https://msdn.microsoft.com/zh-tw/library/system.string.indexof(v=vs.110).aspx
6F:→ kkokking: name大,感謝!!加了第二行,data之後就會自動省略前面英 06/28 15:17
7F:→ kkokking: 文嗎? 06/28 15:18
算是把data的原值ABCDE@12345
覆蓋成substring得到的切割字串結果12345
省略這個動作是substring做的
substring
https://msdn.microsoft.com/zh-tw/library/system.string.substring(v=vs.110).aspx
https://msdn.microsoft.com/zh-tw/library/hxthx5h6(v=vs.110).aspx
https://msdn.microsoft.com/zh-tw/library/aka44szs(v=vs.110).aspx
(若有誤請再指教,謝謝~)
--
~
Sent from my
PCMan Combo ~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.98.251
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1467101344.A.6FC.html
※ 編輯: name2name2 (114.36.98.251), 06/28/2016 16:12:20
8F:→ name2name2: 補充 可以下這個關鍵字 第一個結果點進去 06/28 17:11
10F:推 kkokking: N大謝謝你不辭辛勞得寫那麼詳細,我P幣若是夠多.....就.. 06/28 17:40
11F:→ kkokking: 送N大了!!已解決問題,也得到詳細的解說,真的非常感謝^^ 06/28 17:41
~不客氣!
※ 編輯: name2name2 (114.36.98.251), 06/28/2016 20:07:28