当我键入用户输入时从 arraylist 访问元素时遇到问题
Having trouble while accessing the elements from arraylist when i key in user input
我遇到一个问题,当我尝试检查用户输入是否与我的数组列表中的元素匹配时,它不会显示相应的元素。
我没有得到我想要的输出,因为我一直得到错误的陈述(在 if-else 中)。希望寻求各种建议(仍然是 Java 编程的初学者)。谢谢!
//访问代码,将数组列表元素与文本文件中的用户输入进行比较
String line1;
BufferedReader br= new BufferedReader(newFileReader("Connection.txt"));
while((line1 = br.readLine())!= null)
{
StringTokenizer st = new StringTokenizer(line1, "____");
while(st.hasMoreTokens())
{
String first = st.nextToken();
String last = st.nextToken();
Connection a = new Connection(first, last);
ConnectArray.add(a);
}
}
System.out.println("Enter:");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
System.out.println("The connections are:\n");
for(int x= 0; x<ConnectArray.size(); x++)
{
if(input.equals(ConnectArray.get(x).getConnection1()))
{
System.out.println(ConnectArray.get(x).getConnection2());
break;
}
else
{
System.out.println("The connections you have inputted is wrong! Please try again");
break;
}
}
无论您的输入是什么,您只需将其与文件中的第一行进行比较,因为 if
块中有 break
语句 和 在 else
块中。
您不应该在 else
块中停止循环:其他行可能包含输入。而且,如果正如您的评论所暗示的那样,应该有几行与输入匹配,那么 if
块中也不应该有 break
:其他行也可能与输入匹配。
也就是说,连接 class 中也可能存在其他错误。但是你没有表现出来。您也没有说明您的文件包含什么,以及您的输入是什么,因此很难提供更多帮助。
我遇到一个问题,当我尝试检查用户输入是否与我的数组列表中的元素匹配时,它不会显示相应的元素。 我没有得到我想要的输出,因为我一直得到错误的陈述(在 if-else 中)。希望寻求各种建议(仍然是 Java 编程的初学者)。谢谢!
//访问代码,将数组列表元素与文本文件中的用户输入进行比较
String line1;
BufferedReader br= new BufferedReader(newFileReader("Connection.txt"));
while((line1 = br.readLine())!= null)
{
StringTokenizer st = new StringTokenizer(line1, "____");
while(st.hasMoreTokens())
{
String first = st.nextToken();
String last = st.nextToken();
Connection a = new Connection(first, last);
ConnectArray.add(a);
}
}
System.out.println("Enter:");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
System.out.println("The connections are:\n");
for(int x= 0; x<ConnectArray.size(); x++)
{
if(input.equals(ConnectArray.get(x).getConnection1()))
{
System.out.println(ConnectArray.get(x).getConnection2());
break;
}
else
{
System.out.println("The connections you have inputted is wrong! Please try again");
break;
}
}
无论您的输入是什么,您只需将其与文件中的第一行进行比较,因为 if
块中有 break
语句 和 在 else
块中。
您不应该在 else
块中停止循环:其他行可能包含输入。而且,如果正如您的评论所暗示的那样,应该有几行与输入匹配,那么 if
块中也不应该有 break
:其他行也可能与输入匹配。
也就是说,连接 class 中也可能存在其他错误。但是你没有表现出来。您也没有说明您的文件包含什么,以及您的输入是什么,因此很难提供更多帮助。