2011-09-23 36 views
5

Ví dụ:Ruby, xóa các giá trị null của một chuỗi

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

Vấn đề: Một số phương pháp đòi hỏi một chuỗi để được mà không có null, làm thế nào tôi có thể xóa tất cả các giá trị null của một chuỗi?

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

' '\ 000'' trong Ruby đánh giá để' "\\ 000" ' –

Trả lời

13

Thậm chí đơn giản hơn:

test.delete("\000") 
+0

Giải pháp dễ nhất, cảm ơn bạn – Onetimeposter123

3

Ngay bây giờ tôi cố gắng này trong JRuby và nó làm việc:

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

Lưu ý rằng tôi đang sử dụng một regex trong gsub và không phải là một chuỗi.

+0

Làm việc cũng như (mặc dù kẻ thù tự nhiên của tôi là Regex) – Onetimeposter123

+0

' Regexp' thay thế theo nghĩa đen là nhanh hơn một chút so với thay thế chuỗi ký tự đơn trong MRI. Không chắc về JRuby. –

+0

@Bob Aman: Thật vậy. Bạn có biết tại sao? Dù sao, tôi nghĩ rằng một regexp là overkill cho trường hợp này. –

4

Hãy thử sử dụng dấu ngoặc kép, vì vậy test.gsub("\000", '').

+0

Quên rằng '' không phân tích ký tự thoát, cảm ơn. (5 phút cho đến khi tôi có thể chấp nhận câu trả lời. – Onetimeposter123

Các vấn đề liên quan