关于从键盘接受字符串的问题

灯初夜未央 2017-11-22 10:57:40
如图所示的错误,求大佬解决
public class test {
static InputStreamReader is = new InputStreamReader(System.in);
static BufferedReader br = new BufferedReader(is);
// static Scanner sc = new Scanner(System.in);

// List<Bean> list=new ArrayList<Bean>();
public static void main(String[] args) throws IOException {
List<Bean> list = new ArrayList<Bean>();
System.out.println("请输入需要进行调度的作业数-------------------");
int a = br.read();
for (int i = 0; i < a; i++) {
System.out.println("请输入第" + i + "个进程的id");
String id = br.readLine();
System.out.println("请输入第" + i + "个进程的到达时间");
int arr = br.read();
System.out.println("请输入第" + i + "个进程的服务时间");
int ser = br.read();
Bean bean = new Bean();
以下是输出结果
请输入需要进行调度的作业数-------------------
3
请输入第0个进程的id
请输入第0个进程的到达时间
...全文
233 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
自由自在_Yu 2017-11-24
  • 打赏
  • 举报
回复
int a = br.read();接收int型的数值,会当成ASCII码的,比如你输入的是1,这里的a就是ASCII码1对应的十进制49,a=49 所以用String a= br.readLine();接收,然后转成int
自由自在_Yu 2017-11-24
  • 打赏
  • 举报
回复
public class Test {
	static InputStreamReader is = new InputStreamReader(System.in);
	static BufferedReader br = new BufferedReader(is);

	// static Scanner br = new Scanner(System.in);

	// List<Bean> list=new ArrayList<Bean>();
	public static void main(String[] args) throws IOException {
		List<Bean> list = new ArrayList<Bean>();
		System.out.println("请输入需要进行调度的作业数-------------------");
		String a = br.readLine();		
		for (int i = 0; i < Integer.parseInt(a); i++) {
			System.out.println("请输入第" + i + "个进程的id");
			String id = br.readLine();
			System.out.println("请输入第" + i + "个进程的到达时间");
			String arr = br.readLine();
			System.out.println("请输入第" + i + "个进程的服务时间");
			String ser = br.readLine();
			Bean bean = new Bean();
			bean.setId(id);
			bean.setArr(arr);
			bean.setSer(ser);
			list.add(bean);
		}
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
	}
}
class Bean{
	private String id;
	private String arr;
	private String ser;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getArr() {
		return arr;
	}
	public void setArr(String arr) {
		this.arr = arr;
	}
	public String getSer() {
		return ser;
	}
	public void setSer(String ser) {
		this.ser = ser;
	}
	public String toString(){
		return "进程的id:"+this.id+",进程的到达时间:"+this.arr+",进程的服务时间:"+this.ser;
	}
}
运行示例: 请输入需要进行调度的作业数------------------- 2 请输入第0个进程的id 1 请输入第0个进程的到达时间 2 请输入第0个进程的服务时间 3 请输入第1个进程的id 4 请输入第1个进程的到达时间 5 请输入第1个进程的服务时间 6 进程的id:1,进程的到达时间:2,进程的服务时间:3 进程的id:4,进程的到达时间:5,进程的服务时间:6
灯初夜未央 2017-11-23
  • 打赏
  • 举报
回复
我是想用java模拟操作系统中的时间片轮转调度算法,在这里通过从键盘接受字符来拿到 进程的id·开始时间和需要服务时间
byte[0] 2017-11-23
  • 打赏
  • 举报
回复
从键盘接收字符的3种方式: 1.(char)System.in.read() 2.String str = br.readLine() 3.Scanner sc = new Scanner(System.in); String name = sc.next(); //next()读取String类型的值 int age = sc.nextInt(); //nextInt()读取int类型的值
梦天城 2017-11-23
  • 打赏
  • 举报
回复
你想干啥,没看懂你代码要干啥

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧