Я пишу сервер-клиентский проект. Серверная сторона разрабатывается на Java, а клиентская сторона - на Python. Недавно, когда я пытаюсь отправить строку через сокет, сервер получает его с пробелами в нем. Скажем, я посылаю:Как я могу избавиться от «белых пробелов»
1:user:password
на стороне сервера я использую строку разделить, чтобы преобразовать эту одну строку в 3, первую строку (в данном случае «1») сообщит серверу, что делать с остальными (имя пользователя и пароль). Теперь проблема заключается в том, что когда я печатаю то, что я получаю от розетки на стороне сервера я получаю что-то вроде этого:
1 : u s e r : p a s s w o r d
с белыми промежутками между каждым символом. Я попытался использовать функцию String replaceAll("\\s","")
и replaceAll("\\s+","")
, но они, похоже, не работали. Я использовал replaceAll("\\S","k")
с большой буквы, и понял, что он на самом деле показал мне:
kkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Так я к выводу, что эти «белые пространства» не являются на самом деле белые пространства, потому что \\S
заменяет «все, что не является символом пробела (включая буквы и цифры, а также пунктуацию и т. д.) ».
Мой вопрос: что это за пробелы, и как я могу избавиться от них?
Заранее спасибо. Извините, за длинную статью.
Код, отображающий запись клиента в сокет и чтение сервера из сокета? – vanza
Я думаю, сначала вам нужно выяснить, какие данные вы действительно переносите через сокет, строку со словом или без пробелов. Если клиент python отправляет только символы ascii без пробелов, то с вашим java-сервером должно быть что-то не так. –
Я печатаю строку, которую я отправляю, прежде чем отправить ее, и все в порядке, без пробелов. – mapl93