提问人:Amanda James 提问时间:4/1/2023 最后编辑:mattAmanda James 更新时间:4/19/2023 访问量:124
在 Java 中自动执行整数和字符序列
Automate Int and Character Sequence in Java
问:
如何在 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';
}
答:
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-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
例如,如果座位索引是 ,则表示它对应于一排中的第一个座位,即 seat 。因此,该函数将返回字符 。0
A
getAirplaneSeatLetter(0)
A
public static char getAirplaneSeatLetter(final int seatIndex) {
return (char) ('A' + seatIndex);
}
其中,该函数将行号和飞机座位号作为方法参数,然后返回相应的飞机座位号。getAirplaneSeatNumber
例如,如果行号是 ,而飞机座位字母是 ,则对应于第一排中的第一个座位,即 seat 。因此,该函数将返回字符串 。1
A
1A
getAirplaneSeatNumber(1, 'A')
1A
public static String getAirplaneSeatNumber(final int row, final char airplaneSeatLetter) {
return row + String.valueOf(airplaneSeatLetter);
}
评论