Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

2Fast4U

[Resolvido] Trabalhar com Stringbuilder

Mensagens Recomendadas

2Fast4U    0
2Fast4U

Boas

Estou a aprender C# e comecei a trabalhar com stringbuilder, mas não estou a conseguir fazer com que uma stringbuilder consiga cortar um string da maneira seguinte:

conteúdo da stringbuilder:

C:\Users\Public\Desktop\Google Chrome

gostaria que ficasse somente com o:

Google Chrome

ou seja que removesse todo o texto ate a ultima barra lateral ("\");

os caminhos das stringbuilder são sempre diferentes.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rechousa    63
Rechousa

Olá,

O objectivo da class StringBuilder é o de construir strings (ora fazendo insert ou append) e não o de manipular strings.

Para fazeres o que pretendes tens de criar uma string com o conteúdo da stringbuilder e:

a) ou fazes tratamento de strings (com indexof / lastindexof e substring)

b) ou fazes um split da string para um array de strings usando como separador a barra.

A última posição do array vai ter a informação que pretendes.

Atenção:

Se o conteúdo da stringbuilder for C:\Users\Public\Desktop\Google Chrome\ (com uma útilma barra no fim) poderás ter problemas - deves garantir que queres a última posição não vazia do array.

Espero ter ajudado.


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
2Fast4U    0
2Fast4U

obtei pela opçao B ,mas estou a ter um problema ridículo:

string[] words = y.Split('\');

mas a barra ( \ ) esta a fazer que fique tudo em comentário :confused:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
2Fast4U    0
2Fast4U

Bom já consegui obrigado pela dica Rechousa

Deixo aqui o código caso alguém tenha a necessidade de usar o mesmo algoritmo:

string y = stringWork.ToString();

string[] words = y.Split('\\');
txtMain.AppendText( words[words.Length-1]);

PS: stringWork é uma stringbuilder

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jota_wa    3
jota_wa

Boas

Só uma dica,podes fazer isso com Split de strings e automaticamente ele elimina os índices vazios do array:

string[] words = stringWork.ToString().Split(new string[] { @"\" }, StringSplitOptions.RemoveEmptyEntries);

O literal "@" é utilizado mesmo para permitiir caracteres de escape como a barra "\" sem repetir (@"\").

Cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.