当前位置: 技术问答>java相关
关于java中输入输出的问题!!!!!
来源: 互联网 发布时间:2015-03-23
本文导语: 在java中,在定义一个BufferReader 对象,设定为普通的键盘输入状态:如: BufferedReader br=new BufferedReader(new InputStreamReader(System.in)) s=br.readLine(). 如果这时读入一个字符串,而后边接着再读入一个字符,用System.in.read(...
在java中,在定义一个BufferReader 对象,设定为普通的键盘输入状态:如:
BufferedReader br=new BufferedReader(new InputStreamReader(System.in))
s=br.readLine().
如果这时读入一个字符串,而后边接着再读入一个字符,用System.in.read(),程序会出现错误提示!这两个语句在循环循环中。
我的疑问是,读入操作都有些什么,都有些什么不同,是怎样读入的!
BufferedReader br=new BufferedReader(new InputStreamReader(System.in))
s=br.readLine().
如果这时读入一个字符串,而后边接着再读入一个字符,用System.in.read(),程序会出现错误提示!这两个语句在循环循环中。
我的疑问是,读入操作都有些什么,都有些什么不同,是怎样读入的!
|
参考
First method import java.io.*;
public class TestReadLine {
public static void main (String args[]) {
StreamTokenizer Input=new StreamTokenizer(System.in);
try {
System.out.print(" Your first name : ");
Input.nextToken();
System.out.println("Hi " + Input.sval + "!");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Second method JDK1.0.2 java.io.DataInputStream in =
new java.io.DataInputStream(System.in);
String aLine = in.readLine();
Third method JDK1.1
In you program, use EasyInput.inputStr("") to input a String or EasyInput.InputInt("") for an integer. public class EasyInput {
public static int inputInt(String s) {
BufferedReader input =
new BufferedReader(new InputStreamReader(System.in));
System.out.print(s);
int i =0;
try {
i = Integer.parseInt(input.readLine());
}
catch (Exception e) {
e.printStackTrace();
}
return i;
}
public static String inputStr(String s) {
String aLine = "";
BufferedReader input =
new BufferedReader(new InputStreamReader(System.in));
System.out.print(s);
try {
aLine = input.readLine();
}
catch (Exception e) {
e.printStackTrace();
}
return aLine;
}
public static void main(String s[]) {
while(true) {
int y = inputInt(" Year: ");
int m = inputInt("Month: ");
int d = inputInt(" Day: ");
String you = inputStr("Your name: ");
System.out.println(you + " " + y + m + d);
}
}
}
First method import java.io.*;
public class TestReadLine {
public static void main (String args[]) {
StreamTokenizer Input=new StreamTokenizer(System.in);
try {
System.out.print(" Your first name : ");
Input.nextToken();
System.out.println("Hi " + Input.sval + "!");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Second method JDK1.0.2 java.io.DataInputStream in =
new java.io.DataInputStream(System.in);
String aLine = in.readLine();
Third method JDK1.1
In you program, use EasyInput.inputStr("") to input a String or EasyInput.InputInt("") for an integer. public class EasyInput {
public static int inputInt(String s) {
BufferedReader input =
new BufferedReader(new InputStreamReader(System.in));
System.out.print(s);
int i =0;
try {
i = Integer.parseInt(input.readLine());
}
catch (Exception e) {
e.printStackTrace();
}
return i;
}
public static String inputStr(String s) {
String aLine = "";
BufferedReader input =
new BufferedReader(new InputStreamReader(System.in));
System.out.print(s);
try {
aLine = input.readLine();
}
catch (Exception e) {
e.printStackTrace();
}
return aLine;
}
public static void main(String s[]) {
while(true) {
int y = inputInt(" Year: ");
int m = inputInt("Month: ");
int d = inputInt(" Day: ");
String you = inputStr("Your name: ");
System.out.println(you + " " + y + m + d);
}
}
}
|
在非基本类型中,a ==b 是判断 a、b是否是同一个对象;比如
String a = "here";
String b = a;
这里的 a == b就是true;
要比较内容是否相同要用.equals().
String a = "here";
String b = a;
这里的 a == b就是true;
要比较内容是否相同要用.equals().
|
1、循环条件语句有问题:
改写成
while(s.equals("N")|s.equals("n"));
如果写成while(s=="N"|s=="n"),循环只执行一次。
2、输入月份时注意只能输入数字,否则程序抛出异常退出
改写成
while(s.equals("N")|s.equals("n"));
如果写成while(s=="N"|s=="n"),循环只执行一次。
2、输入月份时注意只能输入数字,否则程序抛出异常退出
|
1。while(s="N"¦s="n");
请把这里的=号改为 .equals("N")。
请把这里的=号改为 .equals("N")。
|
在键盘输入时缓冲区只有一个,BufferedReader br=new BufferedReader(new InputStreamReader(System.in))和System.in.read()都要用到他.读入缓冲区的数据在被需要读出.
|
你可以在s=br.readLine();后加一句system.out.println(s)
看看s等于什么,再作具体的分析
看看s等于什么,再作具体的分析