循环输入字符到StringBuffer 最后输出字符问题 或者说输入的字符为EOF就停止,然后把sb里的字符全部输出来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 判断字符应该用!equals,而不应该用!= public static void main(String[] args){ StringBuffer sb = new StringBuffer(); Scanner reader=new Scanner(System.in); while(true){ String str = reader.next(); if(!"EOF".equals(str)){ sb.append(str); }else{ break; } } System.out.println(sb.toString()); } 你这样永远跳不出循环 你判断str != a 永远不成立,应该是 !str.equals("a") 给楼组一个例子供参考: public static void main(String[] args) { Scanner isr = new Scanner(System.in); StringBuffer sb = new StringBuffer(); while(isr.hasNextLine()){ String str = isr.nextLine(); if(str.equals("EOF")){ break; } sb.append(str); } System.out.println(sb.toString()); isr.close(); } 补充一下,给你加点注释方便于理解,谢谢采纳哦public static void main(String[] args){ StringBuffer sb = new StringBuffer(); Scanner reader=new Scanner(System.in); String str = "";//先定义一个字符串变量,用于接收键盘输入的值 while(true){ str = reader.next();//注意next()这个方法,它是个线程等待,不输入一直等 if(!"EOF".equals(str)){//如果当前输入的值不等于EOF sb.append(str);//添加到sb中 }else{//否则 break;//跳出循环 } } System.out.println(sb.toString()); /** * 补充: * 你之前犯的错误是: * 1、没有把键盘输入的值放到循环中, * 因为每次都要重新赋值去判断所以要 * 放到循环中。 * 2、因为要判断输入的值是否等于EOF那 * 必须用到判断啊,判断用什么?当然是if啦 * 3、判断字符相等用equals()方法,==是判断 * 内存存放的地址是否相同。而且把EOF放到equals左边 * 是为了方式空指针异常。要习惯这样写 * */ } 熟悉kettle的进 Java项目用netW编译时遇到的一个问题, 请帮忙解决.. 关于Socket中超时的问题 启动qq怎么启动啊 ????? 能同时设定两加速键作用于同一菜单项上吗? 【问题求助】关于JAVA的java 关于数据库连接的问题(高分求救) 我想做一个每当表中有新记录增加时弹出一个窗口这个用APPLET能够实现嘛, 邮件发送需要进行身份认证,如何进行处理? WIN98下如何安装IIS5.0!在线等待。 请教高手,关于事件和事件源的问题, thinking in java中的一个例子,我稍微改了一下,就死循环了,指导下!
StringBuffer sb = new StringBuffer();
Scanner reader=new Scanner(System.in);
while(true){
String str = reader.next();
if(!"EOF".equals(str)){
sb.append(str);
}else{
break;
}
}
System.out.println(sb.toString());
}
public static void main(String[] args) {
Scanner isr = new Scanner(System.in);
StringBuffer sb = new StringBuffer();
while(isr.hasNextLine()){
String str = isr.nextLine();
if(str.equals("EOF")){
break;
}
sb.append(str);
}
System.out.println(sb.toString());
isr.close();
}
public static void main(String[] args){
StringBuffer sb = new StringBuffer();
Scanner reader=new Scanner(System.in);
String str = "";//先定义一个字符串变量,用于接收键盘输入的值
while(true){
str = reader.next();//注意next()这个方法,它是个线程等待,不输入一直等
if(!"EOF".equals(str)){//如果当前输入的值不等于EOF
sb.append(str);//添加到sb中
}else{//否则
break;//跳出循环
}
}
System.out.println(sb.toString());
/**
* 补充:
* 你之前犯的错误是:
* 1、没有把键盘输入的值放到循环中,
* 因为每次都要重新赋值去判断所以要
* 放到循环中。
* 2、因为要判断输入的值是否等于EOF那
* 必须用到判断啊,判断用什么?当然是if啦
* 3、判断字符相等用equals()方法,==是判断
* 内存存放的地址是否相同。而且把EOF放到equals左边
* 是为了方式空指针异常。要习惯这样写
*
*/
}