2011-09-23 14 views
5

Ejemplo:Ruby, eliminar los valores nulos de una cadena

String test="hi\000\000\000" 

Problema: Algunos métodos requieren una cadena sin ser nulos, ¿cómo puedo eliminar todos los valores nulos de una cadena?

.split("\000",1) gives me an error: 'force_encoding' method doesn't exist 
.gsub('\000','') does nothing 
+0

' '\ 000'' en Ruby evalúa a' "\\ 000" ' –

Respuesta

13

Aún más simple:

test.delete("\000") 
+0

La solución más fácil, gracias – Onetimeposter123

3

En este momento me trataron esto en JRuby y funcionó:

test.gsub(/\000/, '') 

Tenga en cuenta que estoy usando una expresión regular en el gsub y no una cadena.

+0

funciona tan bien (aunque mi enemigo natural es Regex) – Onetimeposter123

+0

' reemplazos son literales Regexp' cada vez más rápido que las sustituciones de cadenas de un solo carácter en MRI. No estoy seguro acerca de JRuby. –

+0

@Bob Aman: De hecho. ¿Sabes por qué? De todos modos, creo que una expresión regular es exagerada para este caso. –

4

Intenta usar comillas dobles, entonces test.gsub("\000", '').

+0

Olvidé que '' no analiza los caracteres de escape, gracias. (5 minutos hasta que pueda aceptar la respuesta. – Onetimeposter123

Cuestiones relacionadas