2017-03-16 72 views
-1

我正在創建一個程序,將字節轉換爲utf-16字符串。但是,有時字符串會延續,因爲尾部爲0,而我的字符串將以如下形式結束:「這是我的字符串x00\x00\x00"。我希望在到達第一個\x00x00時修剪字符串,它指示尾隨0。這樣做在python?在某些字符後修剪python字符串

我的問題不是在評論鏈接,因爲裝飾()不完全工作的另外一個問題重複。如果我有一個字符串,它是:「這是我的字符串x00\x00您好x00\x00"我只想「這是我的字符串」,而修剪將返回「這是我的字符串嗨有」

+0

歡迎來到SO,你有什麼試過?你能告訴我們代碼嗎? – jmugz3

+0

聽起來像你想[剝離](https://docs.python.org/2/library/string.html#string.rstrip) – Shadow

+0

[在Python中修剪字符串]可能的重複(http://stackoverflow.com/questions/761804/trim-a-string-in-python) – Shadow

回答

0

使用index('\x00')獲取第一個空字符的索引並將字符串切分爲索引;

mystring = "This is my string\x00\x00\x00hi there\x00" 
terminator = mystring.index('\x00') 

print(mystring[:terminator]) 
# "This is my string" 

您還可以對空字符split();

print(mystring.split(sep='\x00', maxsplit=1)[0]) 
# "This is my string" 
+0

你提供的第二塊代碼工作!謝謝一堆。 – user7683274

0

使用strip()函數可以消除一些你不想要的字符,例如:

a = 'This is my string \x00\x00\x00' 
b = a.strip('\x00') # or you can use rstrip() to eliminate characters at the end of the string 
print(b) 

您將獲得This is my string作爲輸出。

+0

我的例子之一的問題是,可能有一個字符串像「這是我的字符串x00 \ x00 \ x00 \ hi there \ x00 \ x00」 我仍然希望輸出爲「This is my串」。 我已經使用strip(),但這個邊緣案例一直把我扔掉。 – user7683274

+0

試試這個:'b = a [0:a.find('\ x00')]' – LuCima