elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Separar palabras de una frase
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Separar palabras de una frase  (Leído 3,575 veces)
abreu20011

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Separar palabras de una frase
« en: 21 Noviembre 2011, 05:14 am »

Saludos :)

Llevo un tiempo con este código que no logro que funcione "del todo"
Estoy buscando una forma en la que al escribir una frase, se separan las palabras una por una, aunque mi código ahora mismo sólo funciona con la primera palabra o la ultima de una frase u.u

Este es el código para sacar la primera palabra, que aunque no funciona como yo quisiera, funciona:

Código:
Public Function FirstWord(Byval frase As String) As String
Dim word As String = ""

For i As Integer = 1 To Len(frase)
'Analizamos desde la posición 1 hasta el maximo de la frase por un For buscando el espacio en blanco
'para saber que se comienza a escribir una segunda palabra, y por tanto, sabemos cual es la primera
If Mid(frase,i,1) = " " Then
word = Mid(frase, 1, (i - 1))
Return word
Exit for
End If
Next
If word = "" Then
'Si la variable "word" no tiene nada guardado (esto se debe a que solo hay una palabra en la frase)
'procedemos a guardar en word la frase entera
Return frase
End If
End Function

Y la función para la ultima palabra (que deberia ser la segunda, no la ultima u.u)
Básicamente hago lo mismo que en la primera para sacar la primera palabra, y a a partir de ahí, la "quito" para que lo vuelva analizar ya sin esa primera palabra:

Código:
Public Function SecondWord(ByVal frase As String) As String
Dim word As String = ""
Dim startSecondWord As Integer = 0

For i As Integer = 1 To Len(frase)
If Mid(frase, i, 1) = " " Then
startSecondWord = i + 1 'añadimos el +1 para que se salte el espacio y comienze por la 2º palabra directamente
frase = Mid(frase,startSecondWord) 'Guardamos la frase ya con la primera palabra quitada
End If
Next

For x As Integer = 1 To Len(frase)
If Mid(frase, x, 1) = " " Then
word = Mid(frase,1, (x - 1))
Return word
Exit For
End If
Next
If word = "" Then
'Si la variable wrod esta vacia, igual que en FirstWord devolvemos la frase entera, que ya ha sido cortada la primera
'palabra el primer For de esta función
return frase
End If
End Function

No se si es posible saber si un cadena llega a su fin, así no necesitaría buscar ese espacio, que es el mismo que me cusa el problema de que si solo hay una palabra en toda la frase, necesite del ultimo If Then para sacarla >.<

Si alguien me pudiera dar algún consejo se lo agradecería :)

Un saludo


En línea

abreu20011

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: Separar palabras de una frase
« Respuesta #1 en: 21 Noviembre 2011, 05:28 am »

Como sabia que iba a postear y encontrar la solución xD

Por si alguien tiene una duda similar, el framework pone a nuestra disposición una función que me acaba de enamorar: Split(http://msdn.microsoft.com/es-es/library/6x627e5f(v=vs.80).aspx)

Código:
Dim frase As String = "Split mola mucho"

Dim comando() As String = Split(frase)

Console.WriteLine("La primera palabra es: " & comando(0))
Console.WriteLine("La segunda palabra es: " & comando(1))
Console.WriteLine("La tercera palabra es: " & comando(2))

Esto no devuelve:

La primera palabra es: Split
La segunda palabra es: mola
La tercera palabra es: mucho

Un saludo a todos :)


« Última modificación: 21 Noviembre 2011, 06:02 am por abreu20011 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
separar palabras
PHP
zhynar_X 1 3,680 Último mensaje 7 Diciembre 2007, 00:07 am
por Azielito
Ayuda en un programa de c: Separar palabras de la puntuación
Programación C/C++
Bròquil 2 1,273 Último mensaje 3 Diciembre 2013, 16:04 pm
por Bròquil
¿En ingles se puede separar las palabras en silabas?
Foro Libre
bacanzito 2 1,309 Último mensaje 6 Agosto 2014, 11:40 am
por ivancea96
Python separar las palabras de una oracion
Scripting
jrcjrcjrc12 4 4,566 Último mensaje 18 Mayo 2016, 22:26 pm
por FurioMoltisanti
Ayuda. Cortar una frase en palabras.
Scripting
DekerMD 3 1,156 Último mensaje 26 Febrero 2018, 16:56 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines