11

私がやりたいことは、文字列の n 番目のオカレンス (この場合は "\t") で分割することです。これは私が現在使用しているコードで、「\t」が出現するたびに分割されます。

string[] items = input.Split(new char[] {'\t'}, StringSplitOptions.RemoveEmptyEntries);

input = "one\ttwo\tthree\tfour" の場合、コードは次の配列を返します。

  • 1
  • 2

しかし、2 番目の "\t" の後に "\t" ごとに分割したいとしましょう。したがって、次のように返されます。

  • 1 つ 2 つ
4

4 に答える 4

1

分割して再結合する必要がある可能性があります。何かのようなもの

int tabIndexToRemove = 3;
string str = "My\tstring\twith\tloads\tof\ttabs";
string[] strArr = str.Split('\t');
int numOfTabs = strArr.Length - 1;
if (tabIndexToRemove > numOfTabs)
    throw new IndexOutOfRangeException();
str = String.Empty;
for (int i = 0; i < strArr.Length; i++)
    str += i == tabIndexToRemove - 1 ? 
        strArr[i] : String.Format("{0}\t", strArr[i]);

結果:

私の文字列にはタブがたくさんあります

これが役立つことを願っています。

于 2013-04-16T10:43:34.180 に答える