如何从java中的std输入读取由换行符分隔的两行多行

问题描述 投票:-4回答:1

如何读取这些行中的每一行并将它们写入java中的两个不同对象。我正在使用Scanner作为第一个线块。我没有尝试过第二个街区

6 6

3 5 5 3

4 6 6 4

2 8 2

6 6

Busayo 2
Ojo 5
Ajala 6
Gulliver 100
Antonio 3
Trump 4

这就是我提出的

public class mainControl {

private Position position;  

public static void main(String[] args) {
    // TODO Write the functionalities to read data in 

    int row = 1;    
    Scanner sc = new Scanner(System.in);
    sc.useDelimiter("\n");

    while (sc.hasNext()) {      

        String value = sc.next();           
        Position pos = new Position(value);
        //System.out.println();
        System.out.println(pos);
    }
}                   

输出:

 row: 6 6

 row: 

 row: 3 5 5 3

 row: 

 row: 4 6 6 4

 row: 

 row: 2 8  2

 row:

我如何删除扫描程序从std中读取的额外换行符?

谢谢。

java
1个回答
0
投票

谢谢大家,我发现数字块之间的空格不是必需的,所以我删除了它们,找到了分别阅读两个块的方法。我想有更好的方法可以做到这一点,但这就是我现在所拥有的。

public class mainControl {  
private static  List<Position> layoutArray = new ArrayList<Position>();
private static List<Order> orderArray = new ArrayList<Order>();
private static Layout layout = new Layout();

public static void main(String[] args) throws IOException {     
    // TODO Write the functionalities to read data in       

    Scanner sc = new Scanner(System.in);
    int row = 1;

    while(sc.hasNextInt()) {

        String[] line = sc.nextLine().split(" ");
        for (int i =0; i < line.length; i++) {

            Position pos = new Position(row, i+1, Integer.parseInt(line[i]));
            layoutArray.add(pos);
            layout.addCapacity(Integer.parseInt(line[i]));      
            //System.out.println(pos);
        }   
        row++;
    }

    System.out.println();   

    while(sc.hasNextLine()) {       

            String[] str = sc.nextLine().split(" ");
            if(str.length > 1) {

                Order order = new Order(str[0], Integer.parseInt(str[1]));
                orderArray.add(order);
                //System.out.println(order);    
            }       
    }

    sc.close();
© www.soinside.com 2019 - 2024. All rights reserved.