Jump to content
2Fast4U

[Resolvido] Trabalhar com Stringbuilder

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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:

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.