MANEJO DE STRINGS EN VB.NET

Iniciado por igustin10, 21 Diciembre 2016, 06:44 AM

0 Miembros y 1 Visitante están viendo este tema.

igustin10

Hola a todos!!

Les queria pedir una ayudita basica ya que no manejo mucho estelenguaje y tengo que hacer un trabajo (trabajo en Python). Aqui va:

1°) Tengo un textbox con texto y quiero hacer un split para que me añada cada palabra del textbox a una lista.
textbox.text = "hola como te va"
lista = {"hola", "como", "te", "va"}


2°) Buscar EN QUE POSICION está cierta palabra en la lista. Ejemplo:
lista = {"a1", "b2", "c3"}
posicion = lista.find(b2) --> probe con indexof pero index me dice la posicion en la str. En este caso me devuelve 0 pero yo quiero que me diga que esta EN LA POSICION DE LA LISTA, no de la str.
msgbox(posicion) --> salga 1 (la cuenta comienza en 0)

3°) Buscar valor por posicion
lista = {"a1", "b2", "c3"}
valor = lista[1] --> la cuenta comienza del 0 por lo tanto que me devuelva b2.

Realmente agradeceria la ayuda!! Muchas gracias!

Eleкtro

#1
Hola. En el foro de programación hay unas normas, debes usar las etiquetas GeShi para insertar código.

Cita de: igustin10 en 21 Diciembre 2016, 06:44 AM1°) Tengo un textbox con texto y quiero hacer un split para que me añada cada palabra del textbox a una lista.
textbox.text = "hola como te va"
lista = {"hola", "como", "te", "va"}

Puedes usar la función String.Split() para crear un Array, y seguidamente la extensión de método Enumerable.ToList() para convertirlo a una Lista:

Código (vbnet) [Seleccionar]
Dim str As String = "Hello World"
Dim lst As List(Of String) = str.Split(" "c).ToList()






Cita de: igustin10 en 21 Diciembre 2016, 06:44 AM
2°) Buscar EN QUE POSICION está cierta palabra en la lista. Ejemplo:
lista = {"a1", "b2", "c3"}
posicion = lista.find(b2) --> probe con indexof pero index me dice la posicion en la str. En este caso me devuelve 0 pero yo quiero que me diga que esta EN LA POSICION DE LA LISTA, no de la str.
msgbox(posicion) --> salga 1 (la cuenta comienza en 0)

Puedes usar la función List.IndexOf() y List.FindIndex() dependiendo de tus necesidades:

Código (vbnet) [Seleccionar]
Dim lst As New List(Of String) From {"Hello", "World"}
Dim idx As Integer = lst.IndexOf("Hello") ' Case Sensitive


Código (vbnet) [Seleccionar]
Dim idx As Integer = lst.FindIndex(Function(s As String) s.Equals("HELLo", StringComparison.OrdinalIgnoreCase)) ' Ignore Case





Cita de: igustin10 en 21 Diciembre 2016, 06:44 AM3°) Buscar valor por posicion
lista = {"a1", "b2", "c3"}
valor = lista[1] --> la cuenta comienza del 0 por lo tanto que me devuelva b2.

Simplemente reemplaza los corchetes [...] por paréntesis (...):

Código (vbnet) [Seleccionar]
Dim lst As New List(Of String) From {"Hello", "World"}
Dim itm As String = lst(0)


O también:
Código (vbnet) [Seleccionar]
Dim item As String = lst.Item(0)

¡Saludos!








igustin10

Muchisimas gracias Elektro por tu respuesta!!

Quedo todo solucionado, un genio!!  :D :D

Saludos,

Igustin!