![](/img/trans.png)
[英]Storing array in firebase / querying multiple strings in firebase
[英]Storing multiple strings in an array list
我必须创建以下程序:
创建一个程序,使您可以键入名称。 用户键入和提交(使用Enter键)的名称应存储在arraylist中。 然后应将arraylist中的名称打印在屏幕上。
我的问题是我只能在阵列列表中存储一个名称。
我的代码:
ArrayList <String> namen = new ArrayList <>();
System.out.print("Enter a name: ");
Scanner in = new Scanner(System.in);
namen.add(in.next());
for (String naam: namen) {
System.out.println(naam);
}
第一个问题是在输入名称并提交后,您将无法输入任何内容,因此我必须像使用整数值一样重置输入:
if (varOne > varTwo) {
System.out.println("Too high!");
varOne = raadGetal.nextInt();
}
varOne = raadGetal.nextInt();
行会重置输入,因此您可以再次输入。 但是,如何通过上面的代码,字符串和arraylist实现相同的目的?
您总是声明ArrayList<String> namen = new ArrayList<>();
之后,它是一个空列表。 尝试这样的事情:
public class MyClass {
private ArrayList<String> namen = new ArrayList<>();
public void addName(){
System.out.print("Enter a name: ");
Scanner in = new Scanner(System.in);
namen.add(in.next());
for(String naam: namen){
System.out.println(naam);
}
}
}
String不支持比较运算符>
。 使用compareTo
方法比较String
值。
if(varOne.compareTo(varTwo)>0) {
System.out.println("Too high!");
varOne = raadGetal.nextInt();
}
问题不是您的ArrayList,而是扫描程序的用法。 如果要询问多个名称,请使用循环。
for(int i = 0; i < NUMBER_OF_NAMES_TO_GET; i++){
namen.add(in.next());
}
您可以先询问用户要输入的名字数量
int noOfNames = in.nextInt();
然后基于此,您可以创建一个循环来存储所有名称
for(int i = 0; i <noOfNames ; i++){
names.add(in.next());
}
尝试在循环中调用它。 它只执行一次。 请尝试以下:
导入java.util.ArrayList; 导入java.util.Scanner;
公共类addName {
private void name() {
ArrayList<String> namen = new ArrayList<String>();
int count = 1;
while(count>0){
System.out.print("Enter a name: ");
Scanner in = new Scanner(System.in);
String a = in.next();
namen.add(a);
if (a.equals("exit")) {
System.out.println("Exiting");
System.exit(0);
}
else{
for (String naam : namen) {
System.out.println(naam);
}
}
count++;
}
}
public static void main(String[] args) {
addName addNames = new addName();
addNames.name();
}
}
Lutz,您可以按照以下方式编写/修改代码:
请注意,您应始终使用String.equals()
方法检查两个字符串的相等性。
import java.util.ArrayList;
import java.util.Scanner;
public class AddNames {
public static void main(String[] args) {
ArrayList<String> namen = new ArrayList<String>();
System.out.print("Enter a name(or write exit to close the program) : ");
Scanner in = new Scanner(System.in);
String name = in.next();
while (!name.equals("exit")) {
namen.add(name);
name = in.next();
}
if (name.equals("exit")) {
System.out
.println("Exiting the program. The names you have entered are:");
for (String naam : namen) {
System.out.println(naam);
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.