我在寫服務器 - 客戶端項目。服務器端是用Java開發的,而客戶端是用Python開發的。最近,當我嘗試通過套接字發送一個字符串時,服務器會在其中使用空格。比方說,我送:我怎樣才能擺脫「空白」
1:user:password
在服務器端我使用一個字符串分割這一個字符串轉換成3個,第一個字符串(在這種情況下,「1」)將告訴服務器做什麼用剩下的(用戶名和密碼)。現在的問題是,當我打印的內容我在服務器端的插口得到我得到這樣的:
1 : u s e r : p a s s w o r d
與每一個字符之間的白色空間。我試圖使用字符串函數replaceAll("\\s","")
和replaceAll("\\s+","")
,但他們似乎沒有工作。在我用replaceAll("\\S","k")
用大寫字母S,並意識到它實際上給我看:
kkkkkkkkkkkkkkkkkkkkkkkkkkkkk
所以我的結論是,這些「白空間」並不是真正的空格,因爲\\S
替代「任何不是空格字符(包括字母和數字,以及標點符號等)「。
我的問題是:那些空白是什麼,我該如何擺脫它們?
在此先感謝。對不起,很長的職位。
顯示客戶端寫入套接字和服務器從套接字讀取的代碼? – vanza
我想,首先,你應該知道你真的通過套接字傳輸了哪些數據,一個帶有空格或沒有空格的字符串。如果python客戶端只發送ascii none-whitespace字符,那麼你的java服務器肯定有問題。 –
我在發送之前打印出我發送的字符串,並且沒有任何空白。 – mapl93