Quando temos preocupação com o uso de memória em nossas aplicações o uso do tipo String não é recomendável, devemos usar a classe StringBuilder, porem ela não tem tantas funções como tem o a classe String.
Uma função que eu senti falta foi para copiar uma palavra de uma frase, ou um trecho delimitado por isso criei a função abaixo:
// Copia as palavra na posição e seu separador
private StringBuilder Palavra(StringBuilder pacote, char separador, int posicao)
{
StringBuilder retorno = new StringBuilder();
for (int i = 0, pos = 1; i < pacote.Length; i++)
{
retorno.Append(pacote[i]);
if (pacote[i] == separador)
{
if (pos == posicao)
{
retorno.Remove(retorno.Length - 1, 1);
break;
}
else
{
retorno.Remove(0, retorno.Length);
pos++;
}
}
}
return new StringBuilder().Append(retorno);
}
Esta função possui três parâmetros :
- pacote: é a frase que queremos pegar uma palavra;
- separador: caracter utilizado para separar as palavras;
- posicao: posição da palavra dentro da frase.
Exemplo
Temos a seguinte frase:
Para pegar a palavra "Santos" usaremos a função da seguinte forma
- pacote: é a frase que queremos pegar uma palavra;
- separador: caracter utilizado para separar as palavras;
- posicao: posição da palavra dentro da frase.
Exemplo
Temos a seguinte frase:
StringBuilder aux = new StringBuilder("Santos campeão da Copa do Brasil de 2010");
Para pegar a palavra "Santos" usaremos a função da seguinte forma
Palavra(aux,' ',1);