special - unity string split c#




Como posso dividir uma string com um delimitador de string? (5)

Há uma versão do string.Split que usa uma matriz de strings e um parâmetro StringSplitOptions :

http://msdn.microsoft.com/pt-br/library/tabh47cf.aspx

Esta questão já tem uma resposta aqui:

Eu tenho essa string:

My name is Marco and I'm from Italy

Eu gostaria de dividi-lo, com o delimitador is Marco and , então eu deveria ter uma matriz com

  • My name em [0] e
  • I'm from Italy em [1].

Como posso fazer isso com c #?

Tentei com

.Split("is Marco and")

mas quer apenas um único char.


Leia isto: http://www.dotnetperls.com/split e a solução pode ser algo como:

var results = yourString.Split(new string[] { "is Marco and" }, StringSplitOptions.None);

Você está dividindo uma string em uma subcadeia bastante complexa. Eu usaria expressões regulares em vez de String.Split. O último é mais para tokenizing texto.

Por exemplo:

var rx = new System.Text.RegularExpressions.Regex("is Marco and");
var array = rx.Split("My name is Marco and I'm from Italy");

Você pode usar o método IndexOf para obter um local da string e dividi-lo usando essa posição e o tamanho da string de pesquisa.

Você também pode usar expressões regulares. Uma simples pesquisa no google acabou com isso

using System;
using System.Text.RegularExpressions;

class Program {
  static void Main() {
    string value = "cat\r\ndog\r\nanimal\r\nperson";
    // Split the string on line breaks.
    // ... The return value from Split is a string[] array.
    string[] lines = Regex.Split(value, "\r\n");

    foreach (string line in lines) {
        Console.WriteLine(line);
    }
  }
}

.Split(new string[] { "is Marco and" }, StringSplitOptions.None)

Considere os espaços por aí "is Marco and" . Você deseja incluir os espaços em seu resultado ou deseja removê-los? É bem possível que você queira usar " is Marco and " como separador ...





split