BufferedReader
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
方法 | 描述 |
---|---|
int read() | 读取单个字符.可读入空格和换行 |
int read(char[] cbuf,int off,int len) | 将字符读入数组的指定位置 |
int read(char[] cbuf) | 读入字符数组 |
String readLine() | 读入一行数据,以换行符结束 |
此处应该注意read()在读取单个字符的时候,可以读取空格和回车,所以如果想要读取
a
b
应该在读取a之后进行一次read()吃掉换行符,然后在进行操作。
cin.read(); // 吃掉a后面的换行符
int b = cin.read();
System.out.println((char)b);
cin.read(); // 吃掉a后面换行符
输出
a
b
最经典的读取一般是使用readLine()进行,然后将读入的内容转化为数字或者其他需要内容。
BufferedWriter cout = new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(cin.readLine()), mod = (int)1e9 + 7;
dp[0] = 1;
for (int i = 1; i <= n; i++) {
int a = Integer.parseInt(cin.readLine());
if (a == 1) {
dp[i] = 0;
continue;
}
for (int j = 1; j <= 3; j++) {
if (i >= j) dp[i] = (dp[i - j] + dp[i]) % mod;
}
}
if (dp[n] == 0) cout.write("No Way!");
else cout.write(Integer.toString(dp[n]));
cout.flush();
cout.close();
}
BufferedWriter
注意如果使用write,输出int类型的时候,输出的是对应的ASCII码,如果想要输出值,应该使用Integer.valueOf(s)进行转化。
另外调用write之后别忘了使用flush进行输出,还有最后要close()。
public class Main {
public static void main(String[] args) throws Exception {
Scanner cin = new Scanner(System.in);
BufferedWriter cout = new BufferedWriter(new OutputStreamWriter(System.out));
int a1 = 66;
char a2 = '6';
String a3 = "66";
cout.write(a1);
cout.write("\n");
cout.write(a2);
cout.write("\n");
cout.write(a3);
cout.write("\n");
cout.flush();
cin.close();
}
}
//输出
B
6
66