Я новичок в программировании сети, и я никогда раньше не использовал Java для сетевого программирования. Я пишу сервер с использованием Java, и у меня есть сообщение о проблеме с клиентом. Я использовалjava indexOf возвращает -1, когда он должен возвращать положительное число
DataInputStream inputFromClient = new DataInputStream(socket.getInputStream());
while (true) {
// Receive radius from the client
byte[] r=new byte[256000];
inputFromClient.read(r);
String Ffss =new String(r);
System.out.println("Received from client: " + Ffss);
System.out.print("Found Index :");
System.out.println(Ffss.indexOf('\a'));
System.out.print("Found Index :");
System.out.println(Ffss.indexOf(' '));
String Str = new String("add 12341\n13243423");
String SubStr1 = new String("\n");
System.out.print("Found Index :");
System.out.println(Str.indexOf(SubStr1));
}
Если я делаю это, и есть пример ввода ASG 23 \ AAG, он возвращает:
Found Index :-1
Found Index :3
Found Index :9
Понятно, что если объект струнный создается с нуля, IndexOf может найдите "\". Как получилось, что у кода возникнет проблема с поиском \ a, если String получается из обработки DataInputStream?
неродственных, но не вызывать конструктор струны для простого создания строки. например предпочитаю 'String foo =" foo "' over 'String foo = new String (" foo ")' –
@TheLostMind Я не копировал код из моего редактора, это была опечатка – Armin
@SteveKuo Я сделал эту опечатку, я изменил бит после того, как я вставил свой код. Извините за путаницу – Armin