Boa tarde , 

Estou com problemas para percorrer uma string ,

Segue meu codigo fonte 

string palavra = "0120901";
int contaNumero1 = 0;

for (int i = 0; i < palavra.Length; i++)
{

     if (palavra.Substring(i, 2) == "01")
     {
         contaNumero1++;

     }

}

Ao executar o programa , o vs me retorna a seguinte mensagem 

Additional information: O índice e o comprimento devem se referir a um local dentro da cadeia de caracteres.

Se eu substituir o segundo parametro do método Substring para 1 , o programa roda , porém eu preciso pegar duas casas e não uma .

Se alguém puder me ajudar eu agradeço

Exibições: 296

Respostas a este tópico

Teste isso

for (int i = 0; i < palavra.Length-1; i++)
{

if (palavra.Substring(i, 2) == "01")
{
contaNumero1++;

}

}

Obrigado , funcionou , consegue me explicar o porque do -1?

O segundo parametro do substring, indica a quantidade a ser "pega", o erro acontece pq na ultima letra ele tenta pegar "a ultima + uma" e não existe, com o -1, você percorre até a ultima letra, e como sempre pega 2, na penultima letra ele vai trazer as 2 ultimas.

Expliquei bem? rs

Pode crer , valeu pela ajuda ! 

RSS

© 2017   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço