java readline严重不明白的问题。

String a;
a=b.readLine();
if (a.length()==0)
执行代码X;
System.out.println(a.length());
不输入任何字符直接按回车,通过print得出a.length等于0,但是if后的代码X不会执行,请问为何?另外在这个例子中如果是if(a.replaceAll(" ","")).equals(""))执行代码Y,同样当用户输入纯空格后回车,代码Y也不会运行,严重不明白,求解!

如果直接回车,a的长度为0,if的条件是成立的,之后的语句也会被执行。
测试代码:
import java.io.Console;
public class Test {
public static void main(String[] args) {
Console c=System.console();
String a;
a=c.readLine();
System.out.println(a.length());
if (a.length()==0){
System.out.println("good");
}
}
} 能正常输出good
所以,lz的问题出在其他环境的环节上。指出值得注意的地方:
1、lz说“(手)按回车”,得出readLine应该源自Console命令行,命令行只在有操作系统shell的情况下有效,比如win命令行或linux shell,而一些伪命令行状态比如编辑器的输出窗口,是无效的。要在正确的场合使用Console,不然用Scanner(System.in)的适用范围稍大一点。
2、“不会执行”很可能是假象。真正原因可能在执行readline出现异常,并被未察觉的捕捉了。导致表现出意外。 基于这个情况,后面if根本没有执行,即使是if(a.replaceAll(" ","")).equals(""))同样无效
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-25
飘过~~

java readline严重不明白的问题。
2、“不会执行”很可能是假象。真正原因可能在执行readline出现异常,并被未察觉的捕捉了。导致表现出意外。 基于这个情况,后面if根本没有执行,即使是if(a.replaceAll(" ","")).equals(""))同样无效

java中读取文件,用readline()读怎么会有的行读不到?
每出现一次br.redLine()它就读一行,你这个循环里面写了两次,它就执行了两次 System.out.println(br.readLine());执行了第一行 xmlstr.append(br.readLine());执行了第二行 再循环System.out.println(br.readLine());执行的是第三行 你可以这样写 while(br.ready()){ String string = br.rea...

java中读取网页源代码时,使用readline函数的问题
readLine是中断式的你没有办法解决,再说也不是你的问题,是对方服务器或者是网络的问题,我们能做的只是设置一个timeout,时间过了,提示读取失败,可以试试apache的HttpClient

java网络编程那个readLine()方法怎么没读到数据???
write之后flush了吗?有的时候你写入的东西太短,socket会做缓冲的,flush会强制将缓冲的字节发送出去。还有如果你用readLine读数据,记得给你用write发出去的内容里添加一个'\\n',要不readLine是会lock在readLine里面的,直到读取到一个'\\n'才会返回。

Java问题readline?
你的代码已经报错了,这个是按行读取文件。InputStream inputStream = getClass().getClassLoader().getResourceAsStream("test.txt");StringBuilder resultStringBuilder = new StringBuilder();try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream))) { String line;while ((...

为什么Java中会出现这样的问题?请删除该文件或确保该文件位于正确的源路...
\/\/你的应该是文件路径问题,还有就是那个readLine方法写错了import java.io.*;public class MyFile {public static void main(String[] args) throws IOException {FileReader fd = new FileReader("D:\/\/demo.txt");\/\/ 最好指定路径BufferedReader a = new BufferedReader(fd);String s = a....

java socket编程 readline()读取问题,为啥在client端刚连接上就开始无限...
一个文本框负负责发送,一个文本框负责接收,不过听他们说swing现在企业中根本不用了,所有我也就没有深入研究,劝你也放弃吧,研究这个没什么用,除非你能在网页上实现,或者做一个程序,至于我写的源码,如果你要我可以发给你 对了再说下你这个问题出现的原因 你这个是因为循环中没有阻塞语句,而且br没有...

java和子进程实时通信,使用readline导致阻塞如何解决?详情如下
用阻塞队列作为消息中间件。队列接收程序发送的消息。可以做一些判断,过滤掉【空白】另一个线程读取队列,当队列有数据,才进行后面的事情。

JAVA的readLine()就是执行不了,详见如下,请答复。
public class ReadLine { public static void main(String[] args) { \/\/ TODO Auto-generated method stub System.out.print("请输入值:");BufferedReader boy=new BufferedReader(new InputStreamReader(System.in));String mystring=null;try { mystring = boy.readLine();} catch (IOException e...

关于java中readline阻塞问题
因为是期待“\\r\\n"这样的换行符号,所以会等待。。。如果不想等等,可以换成read(bytep[])

相似回答