none
Como pegar uma parte de uma string RRS feed

  • Pergunta

  • Tenho uma string que é: 

    www.teste.com.br/louco.aspx

    Preciso que apenas pegue o testo entre (/)  louco (.aspx) no caso iria pegar louco, mas tem que pegar qualquer texto que esteja entre eles. 

    sexta-feira, 27 de março de 2015 19:39

Respostas

  • Boa tarde Jeff,

    Eu usaria o SUBSTRING para recuperar esse conteúdo e, para saber qual a posição pegar, é só pegar o LastIndexOf("/") como posição inicial e LastIndexOf(".") como posição final. O código fica da seguinte maneira:

    string url = "www.teste.com.br/louco.aspx";
    string urlSub = string.Empty;
    
    // Recupera o conteúdo fornecendo o ponto onde se localiza 
    // o último caractere "/" e a subtração da posição do último caractere "." 
    // menos a posição do último caractere "/", 
    // descobrindo qual é o conteúdo que será recuperado.
    urlSub = url.Substring(url.LastIndexOf("/"), (url.LastIndexOf(".") - url.LastIndexOf("/")));

    Abs.

    Bruno 


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx


    sexta-feira, 27 de março de 2015 20:41
  • Jeff,

    Há inúmeras formas de fazer isso, segue uma sugestão:

                string url = "www.teste.com.br/louco.aspx";
                string[] splitBarra = url.Split('/');
                string[] splitPonto = splitBarra.Last().Split('.');
    
                //resultado = louco
                string resultado = splitPonto[0];

    Te ajuda?

    • Marcado como Resposta Jeff Valentim segunda-feira, 30 de março de 2015 14:52
    sexta-feira, 27 de março de 2015 19:55

Todas as Respostas

  • Jeff,

    Há inúmeras formas de fazer isso, segue uma sugestão:

                string url = "www.teste.com.br/louco.aspx";
                string[] splitBarra = url.Split('/');
                string[] splitPonto = splitBarra.Last().Split('.');
    
                //resultado = louco
                string resultado = splitPonto[0];

    Te ajuda?

    • Marcado como Resposta Jeff Valentim segunda-feira, 30 de março de 2015 14:52
    sexta-feira, 27 de março de 2015 19:55
  • sim!!!

    Mas desse forma pega qualquer /, preciso que ele pegue a ultima /

    tem que ser entre a ultima / e o .aspx


    sexta-feira, 27 de março de 2015 20:16
  • Boa tarde Jeff,

    Eu usaria o SUBSTRING para recuperar esse conteúdo e, para saber qual a posição pegar, é só pegar o LastIndexOf("/") como posição inicial e LastIndexOf(".") como posição final. O código fica da seguinte maneira:

    string url = "www.teste.com.br/louco.aspx";
    string urlSub = string.Empty;
    
    // Recupera o conteúdo fornecendo o ponto onde se localiza 
    // o último caractere "/" e a subtração da posição do último caractere "." 
    // menos a posição do último caractere "/", 
    // descobrindo qual é o conteúdo que será recuperado.
    urlSub = url.Substring(url.LastIndexOf("/"), (url.LastIndexOf(".") - url.LastIndexOf("/")));

    Abs.

    Bruno 


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx


    sexta-feira, 27 de março de 2015 20:41
  • Uma forma é usar o método Split("/") para separar em array considerando a barra e depois com replace() tirar o que não quer.

    string currentUrl = "www.teste.com.br/louco.aspx";

    string[] urlParts = currentUrl.Split("/"); string currentPage = urlParts[1].Replace(".aspx","");


    Obs se tiver usando JavaScript puro fica assim: 

    var currentUrl = window.location.href;
    
    var urlParts = currentUrl.Split("/");
    
    var currentPage = urlParts[1].Replace(".aspx","");
    
    


    sexta-feira, 27 de março de 2015 21:27
  • sim!!!

    Mas desse forma pega qualquer /, preciso que ele pegue a ultima /

    tem que ser entre a ultima / e o .aspx


    Jeff,

    Errado!! Ele não pega qualquer /, ele pega a última!

    Veja este trecho do código:

    splitBarra.Last().Split('.');

    O método Last() pega a última! Vai por mim que funciona, eu testei antes de te enviar a solução!

    sexta-feira, 27 de março de 2015 22:33
  • É mais trabalhoso, mas então porque você não da um replace removendo as barras, e da string resultando você aplica o split, e pega o elemento do array que deseja.

    Como falei é mais trabalhoso, porém funcionara com o que você quer.

    segunda-feira, 30 de março de 2015 14:16