我有这段代码
private String getMessage(BufferedReader in) throws IOException{
StringBuilder sb = new StringBuilder();
while(true){
char pom = (char) in.read();
sb.append(pom);
if (sb.toString().contains("\r\n")) {
String result = sb.toString();
result = result.replace("\r\n", "");
return result;
}
}
}
我希望用户在控制台上写一些消息。而当他写作' \ r \ n'控制台应结束其输入。但这不起作用......你有什么提示可能是什么问题吗?
在aditional中,我不想使用in.close();因为我以后需要这个输入。
答案 0 :(得分:0)
试试这个:
private String getMessage(BufferedReader in) throws IOException{
return in.readLine();
}
好的,如果你想逐字节地做,那么你可以试试这个:
private String getMessage(BufferedReader in) throws IOException{
StringBuilder sb = new StringBuilder();
char prev = (char) 0;
char cur = in.read();
while (prev != '\r' || cur != '\n') {
sb.append(cur);
prev = cur;
cur = in.read();
}
return sb.toString();
}