返回信息流import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
String content=null;
//scanner.useDelimiter("\n");
while(scanner.hasNext()){
content=scanner.next();
if(content.equals("exit"))
{
break;
}
System.out.println(content);
}
}
}
问题是当注释掉的时候,输入exit会退出,当不注释分隔符的时候,就不能按正常的逻辑工作,求大神解释下~
这是一条镜像帖。来源:北邮人论坛 / java / #45607同步于 2015/11/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
[问题]有关Scanner类的一点小问题
Drizzle
2015/11/18镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
String content=null;
scanner.useDelimiter("\n");
while(scanner.hasNext()){
content=scanner.next();
if(content.equals("exit"))
{
break;
}
System.out.println(content+"test");
}
}
}
如果不注释,添加上边的调试信息,结果更混乱,输入hello,打出testo
这课好诡异
【 在 Drizzle (Drizzle) 的大作中提到: 】
: import java.util.Scanner;
: public class Test {
: ...................
大概是因为回车后会产生\r\n两个字符,\r会将输出光标移到行首,所以输出hello后,test继续从行首输出tello-->tello->teslo->testo
验证:
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String content = null;
scanner.useDelimiter("\n");
while(scanner.hasNext()) {
content = scanner.next();
if(content.equals("exit")) {
break;
}
System.out.println("Length of content: " + content.length() +
", finial character: " + (int)content.charAt(content.length() - 1));
}
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String content = null;
scanner.useDelimiter("\r\n");
while(scanner.hasNext()) {
content = scanner.next();
if(content.equals("exit")) {
break;
}
System.out.println(content + "test");
}
}
}
明白了,谢大神指导~[ema3]
【 在 wodexiaohao 的大作中提到: 】
: 大概是因为回车后会产生\r\n两个字符,\r会将输出光标移到行首,所以输出hello后,test继续从行首输出tello-->tello->teslo->testo
: 验证:
: [code=java]
: ...................