gpt4 book ai didi

java - 为什么 LinkedList 打印为空白?

转载 作者:行者123 更新时间:2023-12-01 08:52:02 25 4
gpt4 key购买 nike

有人可以告诉我为什么我的行李无法打印吗?

对于乘客姓名,我输入约翰。

对于国家/地区代码,我输入:BI

对于航类号,我输入:095

对于行李数量,我可以输入任意数量。

假设我输入:John, BI, 095, 3。

这就是我得到的:[John with bag(s) [, , ]] 当我应该得到的时候[约翰带着行李[BI0950、BI0951、BI0952]]

抱歉,如果代码很困惑。

已修改。谢谢大家。

import java.util.*;

public class baggageSys{

public static String getUser_command(){
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter command B-baggage, n-next, q-quit");
String s = keyboard.nextLine();
return s;
}

public static String getUser_flight(){
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter the flight number");
String s = keyboard.nextLine();
return s;
}

public static String getPassenger(){
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter passenger name");
String s = keyboard.nextLine();
return s;
}

public static String getUser_country(){
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter the country code");
String s = keyboard.nextLine();
return s;
}

public static int getUser_number(){
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter number of baggage");
int s = keyboard.nextInt();
return s;
}

public static String next(ListIterator<Passenger> passenger){
String k = "";
passenger.next();
return k;


}

public static String makeBaggage(String country, String flight, int num){
return country + flight + num;
}

public static void main(String args[]) {

LinkedList<Passenger> passenger = new LinkedList<Passenger>();
ListIterator<Passenger> iterator = passenger.listIterator();
LinkedList<String> baggage = new LinkedList<String>();

String command = "";

while (!command.equals("q")){
command = getUser_command();

if(command.equals("B") || command.equals("b")){
String p = "";
p = getPassenger();
passenger.add(new Passenger(p));

// command = getUser_command();

String country = "";
country = getUser_country();


String flight = "";
flight = getUser_flight();


int amount = 0;
amount = getUser_number();


String[] bg = new String[amount];

for(int i = 0; i < amount; i++){
bg[i] = makeBaggage(country, flight, i);
baggage.add(bg[i]);
System.out.println(bg[i]);

passenger.getLast().setBaggages(baggage);
}

System.out.println(passenger);


} else if(command.equals("n")){
next(iterator);
}
else
System.out.println("Enter 'q' to end the program");

}

}

public static class Passenger {

String passengers;
List<String> baggage;

public Passenger(String passengers) {
this.passengers = passengers;
baggage = Collections.emptyList();
}

public void setBaggages(List<String> baggage) {
this.baggage = baggage;
}

@Override
public String toString() {
return passengers + " with baggage(s) " + baggage;
}
}
}

最佳答案

您没有在 makeBaggage 方法中返回任何内容,正如您在循环之后看到的那样,它返回了 x 变量,该变量也没有在循环内设置,在这种情况下你的循环是没有用的。

public static String makeBaggage(String country, String flight, int num){

String x = "";

for(int i = 0; i < num; i++){
String[] bgs = new String[num];
bgs[i] = country + flight + i;
// System.out.println(bgs[i]);
}
return x;
}

我认为这就是您要找的:

public static String makeBaggage(String country, String flight, int num){
return country + flight + num;
}

对于代码中的这一特定行:

for(int i = 0; i < amount; i++){
String[] bg = new String[amount];
bg[i] = makeBaggage(country, flight, amount);
baggage.add(bg[i]);
System.out.println(bg[i]);
...

String[] bg = new String[amount]; 声明移至 for 循环 之外,而不是在中提供 amount makeBaggage 方法,请使用循环计数器,如下所示:bg[i] = makeBaggage(country, Flight, i);

String[] bg = new String[amount];

for(int i = 0; i < amount; i++){
bg[i] = makeBaggage(country, flight, i);
baggage.add(bg[i]);
System.out.println(bg[i])
..

我认为应该这样做。此外,您的代码可以得到极大的改进,这将是您的任务。

关于java - 为什么 LinkedList 打印为空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42326782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com