黑马程序员技术交流社区
标题:
字节码问题?????
[打印本页]
作者:
回首、后_街
时间:
2013-4-16 21:19
标题:
字节码问题?????
本帖最后由 回首、后_街 于 2013-4-17 21:28 编辑
这代码运行,s中的值是" "是怎么回事帮忙看一下
sb没有赋到值
InputStream in = System.in;
StringBuffer sb= new StringBuffer();
while(true)
{
int ch = in.read();
if(ch=='\r')
continue;
if(ch=='\n')
{
String s = sb.toString();
if("over".equals(s))
break;
System.out.println(s.toUpperCase());
sb.delete(0,s.length());
}
}
作者:
殇_心。
时间:
2013-4-16 21:59
本帖最后由 殇_心。 于 2013-4-16 22:00 编辑
额。。
老兄你在搞什么东东。。。
你定义的sb又不用。。所以是空的。
你要读取一个值就存一个值。没时间贴代码了。
作者:
杨玉辉
时间:
2013-4-16 22:39
看你的代码应该是视频IO 里面的,建议多看看,因为你少了一个关键步骤,导致sb.toString()输出为空
你把键盘录入的数据全部写到流对象里去了,这时需要sb.append((char)ch)将读取到的键盘录入 强转成字符 char 类型,在添加到 StringBuffer中
作者:
PANZERLEADER
时间:
2013-4-16 22:43
public static void main(String[] args) throws IOException {
InputStream in = System.in;
StringBuffer sb = new StringBuffer();
while (true) {
int ch = in.read();
//在这里加上如下代码,把输入的值加进sb里,之后sb里就有值了。
sb.append((char)ch);
if (ch == '\r')
continue;
if (ch == '\n') {
//如果没加注释里说的代码,sb里什么也没有,toString方法返回的是""
String s = sb.toString();
if ("over".equals(s))
break;
System.out.println(s.toUpperCase());
sb.delete(0, s.length());
}
}
}
复制代码
看楼主的意思,应该是要实现 输入小写字母转成大写的功能吧?
我加了行代码,把输入的值加进sb里,这样之后就会有值了。
不过建议楼主再把代码加上健壮性判断,否则可能会出错的。
作者:
何俊森
时间:
2013-4-16 22:58
楼主的代码运行了停止不了。在最小改动原来楼主代码地情况下
import java.io.IOException;
import java.io.InputStream;
public class InputStreamTest {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
InputStream in = System.in;
StringBuffer sb = new StringBuffer();
while (true) {
char ch = (char)in.read();
if (ch == '\r'){
continue;
}
sb.append(ch);
if (ch == '\n') {
String s = sb.toString();
if ("over\n".equals(s))
break;
System.out.println(s.toUpperCase());
sb.delete(0, s.length());
}
}
in.close();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2