在 Java 中自动执行整数和字符序列

Automate Int and Character Sequence in Java

提问人:Amanda James 提问时间:4/1/2023 最后编辑:mattAmanda James 更新时间:4/19/2023 访问量:124

问:

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

我试过这样做,但它并没有完全达到我想要的效果:

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 数组 oop 多维数组

评论


答:

0赞 Unmitigated 4/1/2023 #1

每个席位都由多个字符标识,因此请改用数组。然后,您可以使用嵌套的 for 循环:String

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]]
4赞 Zufar Sunagatov 4/19/2023 #2

要在 Java 中从 和 的范围生成数字和字符序列,您可以使用此函数,该函数将行数和每行的飞机座位数作为方法参数,然后返回表示飞机座位的字符串数组:A-F1-11generateAirplaneSeats

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

例如,如果座位索引是 ,则表示它对应于一排中的第一个座位,即 seat 。因此,该函数将返回字符 。0AgetAirplaneSeatLetter(0)A

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

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

例如,如果行号是 ,而飞机座位字母是 ,则对应于第一排中的第一个座位,即 seat 。因此,该函数将返回字符串 。1A1AgetAirplaneSeatNumber(1, 'A')1A

    public static String getAirplaneSeatNumber(final int row, final char airplaneSeatLetter) {
        return row + String.valueOf(airplaneSeatLetter);
    }