Anuncios Google

String

Alguien me puede ayudar con el modulo String, Lo he leido en la documentación y sigo sin saber usarlo con exactitud

 

Agradecería unos ejemplos útiles de como usarlo correctamente para dividir palabras, letras, etc.

 

Saludos y gracias a todos!


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Pero buscas algo en

Pero buscas algo en particular? Porque creo que las funciones que podrían complicarse son match y find (por las variadas formas que hay de usarlas). El resto (len, lower, rep, reverse, sub...) son muy sencillas.

Busco

Busco algo así como para dividir strings en palabras o para substituir una letra por otra.

 

Saludos!

Imagen de jorge_97

By Jorge_97

string.sub(string,a,b)

Retorna un sufijo de una cadena.

string: Cadena

a: Caracter a iniciar

b: Carácter a terminar (Por defecto es el último, es decir si lo dejas vacío)

Ejemplo:

txt="Gato"

os.message(txt:sub(2,3))

--Esto devolvería "at"

 

Un saludo


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Gracias por responder

Gracias por responder, ya descubri el código para divirlo en palabras, en pc imprimiría una palabra por línea, ahora solo me faltaría uno para cambiar un caracter en una posición determinada

s = "Gracias a todos por ayudarme con los strings"
  for w in string.gmatch(s, "%a+") do
    print(w)
  end

 

Saludos!

En LuaDEV específicamente

En LuaDEV específicamente tienes la función string.explode, que te permite partir un string usando un separador cualquiera. Siguiendo tu ejemplo:

s = "Gracias a todos por ayudarme con los strings"
palabras = string.explode(s," ")  --El separador sería el espacio en blanco

Eso te devolvería una tabla conteniendo una palabra por entrada (tabla[1]="Gracias", tabla[2]="a", tabla[3]= "todos" y así...).

Cambiar un caracter es muy sencillo, para no complicarme la vida yo declararía una función universal:

function replace(str,car,pos)
	return str:sub(1,pos-1)..car..str:sub(pos+1)
end
 
--str => la cadena original
--car => el caracter (o caracteres) a usar en la sustitución
--pos => la posición donde se insertará el cambio

Y listo... haciendo replace(s,"#",14) por ejemplo, devolvería "Gracias a tod#s por ayudarme con los strings
" ;)

Muchisimas

Muchisimas gracias, la verdad es que no se me ocurria una forma de hacerlo...

 

 

 

PD: ¿Como puedo hacer para borrar un trozo del string, por ejemplo una palabra o una letra?

Saludos!

Para borrar una letra puedes

Para borrar una letra puedes usar la misma función que dejé, expecificando una cadena vacía:

txt = "Soy un string xD"
txt = replace(txt,"",1)
 
--txt ahora sería "oy un string xD"

Siendo una palabra completa... una de dos: o modificas la función de arriba para que sepa dónde inicia y dónde termina la palabra que quieres eliminar (modo avanzado digamos) o usas la función string.gsub:

txt = "Yo tb soy un string xDD"
txt = txt:gsub("tb","")
--Ahora txt sería "Yo  soy un string xDD"

Este sería el modo fácil, aunque tiene un potencial problema: si tienes varias veces la misma palabra, pero sólo quieres sustuir la última, no sería posible directamente (habría que desarrollar otra función... eso te lo dejo para que te diviertas xD).

Con string.sub, por

Con string.sub, por ej;

mi_string = string.sub(mi_string, 1, 5)

Imagen de NEKERAFA

Mmm...

Lo mejor en estos caso es que vayas probando todas las funciones, y que veas que devuelven. Experimenta con ellas. Así es como lograrás entenderlo, o por lo menos para mi.


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Ok

Vale seguire tu consejo, voy a ver mas ventanitas de error :)

 

Saludos!

Imagen de smokesilence

Smokesilence

Sirve para registrar una cadena o grupo de carácteres de variables.

Imagen de NEKERAFA

Y más...

Dividir strings, buscar ciertos string, formatear strings, obtener ciertos substrings, ect... o como pone en la documentación de Lua:

Esta biblioteca proporciona funciones genéricas de manejo de strings, tales como encontrar y extraer substrings y detectar patrones

Por ejemplo, para un corrector ortográfico o un teclado, se podría utilizar la función string.levenshtein()


NekeOS, el nuevo shell para PSP

PS4 500GB OFW, PS3 320GB OFW, PS3 500GB OFW, PSP 6.39 PRO-C Fix4.

Sony Xperia Z1 Compact con Android 5.1.1

Portatil Lenovo z50-70 Intel® Core™ i7-4510U y NVIDIA GeForce 840M con Elementary OS 0.3.2 Freya (64 bits) y Windows 10 (64 bits).

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.