簡體   English   中英

如何使用c#中的字符分隔符將字符串拆分為兩部分?

[英]How to split a string into two parts using a character separator in c#?

使用單字符分隔符將字符串拆分為兩個部分的最佳方法是什么?

字符串應該在分隔符的第一個實例上拆分。 該方法應考慮性能。 它不應該假設分隔符存在於字符串中,字符串具有任何字符等; 應該是通用代碼,您可以隨時插入任何需要的代碼。

(每當我需要它時,我總是花幾分鍾時間重寫這種東西,所以我想我會提出一個問題)

如果您確實只想獲得兩個結果,請使用帶有第二個參數的字符串split方法:

string[] words = myString.Split(new char[]{' '}, 2);
var part1 = myString.SubString(0, myString.IndexOf(''));
var part2 = myString.SubString(myString.IndexOf(''), myString.Lenght);
    string[] SplitStringInTwo(string input, char separator)
    {
        string[] results = new string[2];
        if (string.IsNullOrEmpty(input)) return results;
        int splitPos = input.IndexOf(separator);
        if (splitPos <= 0) return results;
        results[0] = input.Substring(0, splitPos);
        if (splitPos<input.Length)
            results[1] = input.Substring(splitPos + 1);
        return results;
    }

(每當我需要它時,我總是花幾分鍾時間重寫這種東西,所以我想我會提出一個問題)

如果您經常需要這個,可以將您喜歡的方式轉換為擴展方法 基於Teoman Soygul的建議:

public static class StringExtensions
{
  public static string[] TwoParts(this String str, char splitCharacter)
  {
    int splitIndex = str.IndexOf(splitCharacter);
    if(splitIndex == -1)
      throw new ArgumentException("Split character not found.");

    return new string[] {
      str.SubString(0, splitIndex),
      str.SubString(splitIndex, myString.Lenght) };
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM