Jump to content
User LoL

como substituir varias palavras de uma vez?

Recommended Posts

User LoL

Eu tenho um código, que substitui uma letra determinada, por um número, como faço pra adaptar e ele substituir palavas?

Exemplo: ele substitui "a" por "1", e se eu quisesse substituir "teste" por "isso e um texto", como faço?

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
legd1991
Dim palavra As String = "palavra"
Dim palavraCorrecta As String = palavra.Replace("a","1")

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
nelsonr

Ou

Dim palavra as String = "teste"
Dim palavraCorrecta as String = palavra.Replace("teste","isso e um texto")

Share this post


Link to post
Share on other sites
User LoL

Teria como eu criar um For Each, fazendo uma lista das palavras que devem ser substituidas?

Tentei começando assim, mas ta dando problema na terceira linha, se eu uso ToString ele so aceita um caracter na entrada, e se coloco Split ele retira todos os espaços:

Public Function substitui(ByVal todotexto As String) As String
 Dim resultado As String = ""
 For Each item As String In todotexto.ToString
	 'For Each item As String In >>> str.ToString <<< Quando aqui estiver ToString ele so substitui um caracter
	 'por uma palavra ou frase,e quando tiver split ele substitui ate frases, por outras frases,
	 ' o problema é que o split tira os espaços entre as palavras.
	 If item = "1" Then : item = "<numero 1>"
	 ElseIf item = "2" Then : item = "<numero 2>"
	 ElseIf item = "33" Then : item = "<numero 33>"
	 End If
	 resultado = "" & resultado & item
 Next
 substitui = resultado
 RichTextBox2.Text = resultado
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 substitui(RichTextBox1.Text)
End Sub

Edited by User LoL

Share this post


Link to post
Share on other sites
nelsonr

Porquê que estás a usar o foreach?

Public Function substitui(ByVal todotexto As String) As String
  Dim resultado As String = todotexto

  resultado=resultado.Replace("1","<numero 1>")
  resultado=resultado.Replace("2","<numero 2>")
  resultado=resultado.Replace("33","<numero 33>")

  substitui = resultado
  RichTextBox2.Text = resultado
End Function

Share this post


Link to post
Share on other sites
User LoL

Hm não tinha tentado dessa forma ainda, o For Each só estava complicando mesmo. Obrigado

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.