public static String readLine() throws IOException {
StringBuilder sb = new StringBuilder(); // 定义一个StringBuilder用来存储读取到的字符
while (true) { // 定义循环
byte b1 = (byte) System.in.read(); // 使用System.in.read()读一个字节
if (b1 == '\r') // 如果读到\r
continue; // 不存, 进入下一次循环
else if (b1 == '\n') // 如果读到\n
break; // 代表读到了末尾, 循环结束
/*if (b1 < 0) { // 读取到的字节如果小于0, 代表遇到了中文
byte b2 = (byte) System.in.read(); // 中文是2个字节, 所以再读一个
String s = new String(new byte[] { b1, b2 }); // 将2个字节转为字符串
sb.append(s); // StringBuilder存储2个字节转为的字符
} else*/
sb.append((char)b1); // 不小于0的字节, 代表是英文字符, 直接转为char, 存到StringBuilder中
}
return sb.toString(); // 循环结束后, 将StringBuilder中的内容转为String返回
}
} |