java - 当 "' 设置为分隔符时,为什么我的扫描仪读取的是 "B"B' and\n"而不是 "\n"?

标签 java sockets networking

我创建了一个简单的程序,通过 TCP 与客户端和服务器进行通信。代码很简单,我已经使用套接字完成了(我没有与此相关的问题,我的意思是您不需要了解套接字来帮助我) 在突出显示的代码部分中,我需要要求用户写一个字母,代表服务器将执行的操作,但我不知道为什么当我写时,例如,B + Enter,扫描仪会读取B + Enter(我选择 Enter (\n) 作为分隔符)。我已经使用子字符串解决了它,但我不喜欢那样。谁能告诉我为什么扫描仪读取“B +\n”而不是“B”?提前致谢。在这里你可以看到代码: enter image description here

无论如何,我在这里写下有问题的代码部分:

...
 Scanner sc = new Scanner(System.in);
 sc.useDelimiter("\n");
 System.out.println("Por favor especifique el campo opción (letra): ");
//(here I write B and I press enter)
opcion = sc.next();
//(here the scanner reads both B and \n I have to write the next line to solve the problem)
opcion = opcion.substring(0, 1);//(This is what i want to solve)
...

最佳答案

使用 opcion = sc.nextLine();
这样它将忽略\n 并为您提供所需的字符串。

关于java - 当 "' 设置为分隔符时,为什么我的扫描仪读取的是 "B"B' and\n"而不是 "\n"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61815148/

相关文章:

java - 在 Java Server Faces 中将托管属性与 CommandButton 一起使用

c - sigprocmask 不恢复我的信号处理程序

c - 两个 TCP/IP 套接字 send() 请求实际上在一个 TCP 消息中处理

java - 如何从多个客户端接收文件?

java - Java套接字连接失败

ios - 在 LAN 中广播 UDP 消息以检测 IP 摄像机

java - appletviewr - getParameter 返回 null

Java模式匹配除给定列表之外的任何字符序列

java - Hibernate 中的多对一关系,而不是数据库中的多对一关系

Java NIO : OP_CONNECT never triggered in client, 即使服务器接受连接