有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用BufferedReader从输入中获取整数并存储为对象

我正在尝试设置一个程序,该程序接受用户输入(例如“12 20 14 23 08 19”),并创建类“Period(int start,int end)”的对象。我想将这些对象存储到一个数组中,以便可以遍历它们

import java.io.*;

class myCode
{
public static void main (String[] args) throws java.lang.Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String input = br.readLine();
    System.out.println(input);

    //Array for storing period objects
    Period[] array = new Period[];

    //12 20 14 23 08 19

}

public static class Period{

    public int start;
    public int end;

    public Period(int start, int end) {
        this.start = start;
        this.end = end;
    }

    void printPeriod(){
        System.out.println("Start: " + start);
        System.out.println("End: " + start);
    }

  }
}

共 (1) 个答案

  1. # 1 楼答案

    一个简单的选择是只在空白处拆分输入字符串,然后填充句点数组:

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String input = br.readLine();
    String[] parts = input.split("\\s+");
    
    Period[] array = new Period[parts.length / 2];
    for (int i=0; i < parts.length; i=i+2) {
        int start = Integer.parseInt(parts[i]);
        int end = Integer.parseInt(parts[i+1]);
        Period period = new Period(start, end);
    
        array[i/2] = period;
    }
    

    for循环背后的逻辑是分两步执行,每一步创建并填充Period对象。然后将这个Period对象添加到数组的i/2位置