菜頭 發問時間: 電腦與網際網路程式設計 · 1 0 年前

我想請問什麼叫2進位比對法

舉例程式

dim mystring(2) as string

mystring(0) = "this"

mystring(1) = "is"

mystring(2) = "it"

dim substrings() as string = filter(mystring,"is",true,compareMethod.text)

傳回 " this " " is"

dim substringS() as string = filter(mystring,"is",true,compareMethod.binary)

傳回 " this"

dim substrings() as string = filter(mystring,"is",false,compareMethod.binary)

傳回 " is " " it "

如果是用2進位比對法又是怎麼比對?

我想問的是 如果是用文字比對的方式也就是compareMethod.text

那麼是不是只要字串裡面有出現 is 的字串就會被傳回?

已更新項目:

我想問說

by val跟dim的功能相似嗎?

Dim substrings() As String = Filter(mystrings, "is", False, CompareMethod.Binary)

而且 我用console.write輸出的時候

只有輸出it 沒有it呢

是我打錯了嗎?

1 個解答

評分
  • 1 0 年前
    最佳解答

    '=========================================================

    '適用Ver:Visual Studio 2005

    '

    '首先您須了解 Filter 的語法

    'Function Filter(

    ' ByVal Source() As { Object | String },

    ' ByVal Match As String,

    ' Optional ByVal Include As Boolean = True,

    ' Optional ByVal Compare As CompareMethod = CompareMethod.Binary

    ') As String()

    '

    'Include

    '選擇 項。Boolean 值,指出是否要傳回包含或排除 Match 的子字串。

    '如果 Include 為 True,Filter 函式會傳回將 Match 包含為子字串的陣列子集。

    '如果 Include 為 False,Filter 函式會傳回不將 Match 包含為子字串的陣列子集。

    'Compare

    'CompareMethod.Binary 執行二進位比對

    'CompareMethod.Text 執行文字比對

    '=======================================================

    '如果您指定 Binary,那麼此陳述式將根據來自代表字元的內部二進位碼的排序順序來做字串比對。

    '在英文字母方面,二位元(Binary)比較方式將大小寫視為不同。

    '預設的文字比對方法是 Binary。

    '

    '如果您指定 Text,那麼此陳述式將根據使用者系統地區所決定的不分大小寫原文排序順序來做字串比對。

    '=======================================================

    '所以您想問的是:

    '如果是用文字比對的方式也就是compareMethod.text

    '那麼是不是只要字串裡面有出現 is 的字串就會被傳回? (答案是會的)

    '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    '順便一提:您的程式小 bug,我將修正的用<>表示。(因字數限制,我再用補充回答)

    '錯誤1在目前區塊中已經宣告過區域變數 'substringS'。

    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    2007-02-04 14:15:15 補充:

    '<傳回(" this")>

    '您的程式碼會傳回 "this" "is"

    '若您要傳回只有 "this"則 mystring(1) = "Is","I"和"i"的二位元碼是不同的,

    '但 CompareMethod.Text 會傳回 "this" "Is"

    '但 , False, CompareMethod.Binary 會傳回 "Is" "it"

    2007-02-04 14:28:39 補充:

    '<傳回 " is " " it ">

    '您的程式碼會傳回 "it",道理同上述原理。

    2007-02-05 18:51:33 補充:

    1.'Dim:'為一或多個變數宣告和配置儲存空間。

    'ByVal:'指定一種傳遞引數的方式,如果使用這種方式,呼叫的程序或屬性 (Property) 便無法變更呼叫程式碼中引數所含的變數值。

    2.'對啊!您的程式碼只會傳回 "it",所以我說您的舉例程式 '傳回 " is " " it "是錯誤的

    參考資料: MSDN
還有問題?馬上發問,尋求解答。