在 Java 中自动化 Int 和字符序列

问题描述 投票:0回答:2

如何在 Java 中从 A-F 和 1-11 的范围内生成数字和字符序列,以模拟飞机座位系统。例如,要创建一个数组 {1A,1B,1C,1D,1E,1F,2A,2B etc...}.

我试过这样做,但它并没有完全按照我的意愿去做:

char[][] seats = new char[5][6]; // 30 seats

        for(int i = 0; i < 5; i++ ){    
            seats[i][0] = 'A';
            seats[i][1] = 'B';
            seats[i][2] = 'C';
            seats[i][3] = 'D';
            seats[i][4] = 'E';
            seats[i][5] = 'F';         
        }
java arrays oop multidimensional-array airplane-mode
2个回答
0
投票

每个座位由多个字符标识,因此请改用

String
数组。然后,您可以使用嵌套的 for 循环:

for (int i = 0; i < seats.length; i++) 
    for (int j = 0; j < seats[i].length; j++)
        seats[i][j] = i + 1 + String.valueOf((char)(j + 'A'));
System.out.println(Arrays.deepToString(seats));
// [[1A, 1B, 1C, 1D, 1E, 1F], [2A, 2B, 2C, 2D, 2E, 2F], [3A, 3B, 3C, 3D, 3E, 3F], [4A, 4B, 4C, 4D, 4E, 4F], [5A, 5B, 5C, 5D, 5E, 5F]]

0
投票

要在Java中从A-F和1-11的范围内生成数字和字符序列,可以使用这个函数

generateAirplaneSeats
它以行数和每行的飞机座位数作为方法参数,然后返回一个代表飞机座位的字符串数组:

public static String[] generateAirplaneSeats(final int numberRows, final int numberSeatsPerRow) {
        String[] airplaneSeats = new String[numberRows * numberSeatsPerRow];

        for(int row = 1; row <= numberRows; row++) {
            for(int seat = 0; seat < numberSeatsPerRow; seat++) {
                char airplaneSeatLetter = getAirplaneSeatLetter(seat);
                String airplaneSeatNumber = getAirplaneSeatNumber(row, airplaneSeatLetter);
                airplaneSeats[(row - 1) * numberSeatsPerRow + seat] = airplaneSeatNumber;
            }
        }

        return airplaneSeats;
    }

其中函数

getAirplaneSeatLetter
将飞机座位索引作为方法参数,然后返回适当的飞机座位字母。

例如,如果座位索引为

0
,则表示它对应一排的第一个座位,即座位
A
。因此,函数
getAirplaneSeatLetter(0)
将返回字符
A
.

    public static char getAirplaneSeatLetter(final int seatIndex) {
        return (char) ('A' + seatIndex);
    }

其中函数

getAirplaneSeatNumber
将行号和飞机座位字母作为方法参数,然后返回相应的飞机座位号。

例如,如果排号是

1
,飞机座位字母是
A
,则对应第一排的第一个座位,即座位
1A
。因此,函数
getAirplaneSeatNumber(1, 'A')
将返回字符串
1A
.

    public static String getAirplaneSeatNumber(final int row, final char airplaneSeatLetter) {
        return row + String.valueOf(airplaneSeatLetter);
    }
© www.soinside.com 2019 - 2024. All rights reserved.