c# vb - C#將字符串拆分為另一個字符串




character get (8)

為了分割一個字符串,你必須使用字符串數組重載

string data = "THExxQUICKxxBROWNxxFOX";

return data.Split(new string[] { "xx" }, StringSplitOptions.None);

我一直在使用Split()方法來拆分字符串,但是如果你正在用一個字符拆分字符串,這似乎只能工作。 有沒有什麼辦法來分割一個string ,另一個字符串是按參數拆分? 我已經嘗試將分離器轉換為字符數組,但沒有運氣。

換句話說,我想分割string

THExxQUICKxxBROWNxxFOX

xx ,並返回一個數組值:

THE,QUICK,BROWN,FOX


這裡有一個String.Split的重載:

"THExxQUICKxxBROWNxxFOX".Split(new [] {"xx"}, StringSplitOptions.None);

以上答案都是正確的。 我更進一步,通過在String上定義一個擴展方法讓C#為我工作:

public static string[] Split(this string toSplit, string splitOn) {
    return toSplit.Split(new string[] { splitOn }, StringSplitOptions.None);
}

這樣我就可以以簡單的方式在任何字符串上調用它,我天真地期望第一次嘗試完成這個任務:

"a big long string with stuff to split on".Split("g str");

我通常喜歡用我自己的擴展名:

string data = "THExxQUICKxxBROWNxxFOX";
var dataspt = data.Split("xx");
//>THE  QUICK  BROWN  FOX 


//the extension class must be declared as static
public static class StringExtension
{   
    public static string[] Split(this string str, string splitter)
    {
        return str.Split(new[] { splitter }, StringSplitOptions.None);
    }
}

但是,如果Microsoft決定在後續版本中包含此方法 - 超載,則會導致出現異常。 這也是微軟在此期間未包括此方法的可能原因:至少有一家公司曾在其所有C#項目中使用過這樣的擴展。

如果它不存在,也可以在運行時有條件地定義該方法。


string data = "THExxQUICKxxBROWNxxFOX";

return data.Replace("xx","|").Split('|');

只需仔細選擇替換字符(選擇一個不太可能出現在字符串中的字符)!


最簡單的方法是使用String.Replace

string myString = "THExxQUICKxxBROWNxxFOX";
mystring = mystring.Replace("xx", ", ");

或者更簡單地說:

string myString = "THExxQUICKxxBROWNxxFOX".Replace("xx", ", ");

有一個需要字符串的Split重載

"THExxQUICKxxBROWNxxFOX".Split(new [] { "xx" }, StringSplitOptions.None);

您可以使用這些StringSplitOptions中的任何一個

  • - 返回值包含包含空字符串的數組元素
  • RemoveEmptyEntries - 返回值不包含包含空字符串的數組元素

因此,如果字符串是“THExxQUICKxxxxBROWNxxFOX”,則StringSplitOptions.None將為數組中的“xxxx”部分返回一個空條目,而StringSplitOptions.RemoveEmptyEntries則不會。


strpos()

<?php
    $mystring = 'abc';
    $findme   = 'a';
    $pos = strpos($mystring, $findme);

    // Note our use of ===. Simply, == would not work as expected
    // because the position of 'a' was the 0th (first) character.
    if ($pos === false) {
        echo "The string '$findme' was not found in the string '$mystring'.";
    }
    else {
        echo "The string '$findme' was found in the string '$mystring',";
        echo " and exists at position $pos.";
    }
?>






c# .net string split