Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在数组列表中存储多个字符串_Java_Arraylist - Fatal编程技术网

Java 在数组列表中存储多个字符串

Java 在数组列表中存储多个字符串,java,arraylist,Java,Arraylist,我必须创建以下程序: 创建一个允许您键入名称的程序。用户键入和提交的名称(使用enter键)应存储在arraylist中。然后,arraylist中的名称应打印在屏幕上 我的问题是我只能在arraylist中存储一个名称 我的代码: ArrayList <String> namen = new ArrayList <>(); System.out.print("Enter a name: "); Scanner in = new Scann

我必须创建以下程序:

创建一个允许您键入名称的程序。用户键入和提交的名称(使用enter键)应存储在arraylist中。然后,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);
}

varOne=raadGetal.nextInt()行重置输入,以便您可以再次键入。但是如何使用上面的代码,使用字符串和arraylist实现同样的效果呢?

比较运算符
不受字符串支持。使用
compareTo
方法来比较
String

if(varOne.compareTo(varTwo)>0) {
System.out.println("Too high!");
varOne = raadGetal.nextInt();
}

字符串不支持比较运算符
。使用
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());
}
for(int i=0;i
问题不在于您的ArrayList,而在于扫描仪的使用。如果您想询问多个名称,请使用循环

for(int i = 0; i < NUMBER_OF_NAMES_TO_GET; i++){
    namen.add(in.next());
}
for(int i=0;i
您总是声明
ArrayList name=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);
        }
    }
}
公共类MyClass{
private ArrayList name=new ArrayList();
public void addName(){
System.out.print(“输入名称:”);
扫描仪输入=新扫描仪(系统输入);
namen.add(in.next());
for(字符串naam:namen){
系统输出打印LN(naam);
}
}
}

您总是声明
ArrayList name=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);
        }
    }
}
公共类MyClass{
private ArrayList name=new ArrayList();
public void addName(){
System.out.print(“输入名称:”);
扫描仪输入=新扫描仪(系统输入);
namen.add(in.next());
for(字符串naam:namen){
系统输出打印LN(naam);
}
}
}

您可以先询问用户想要提供的姓名数量

int noOfNames = in.nextInt();
然后在此基础上创建一个循环来存储所有的名称

for(int i = 0; i <noOfNames ; i++){
    names.add(in.next());
}

对于(int i=0;i您可以先询问用户想要给出的姓名数量

int noOfNames = in.nextInt();
然后在此基础上创建一个循环来存储所有的名称

for(int i = 0; i <noOfNames ; i++){
    names.add(in.next());
}

for(int i=0;i尝试在循环中调用它。它只执行一次。请尝试以下操作:-

导入java.util.ArrayList; 导入java.util.Scanner

公共类地址名{

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();
}
private void name(){
ArrayList name=新的ArrayList();
整数计数=1;
而(计数>0){
System.out.print(“输入名称:”);
扫描仪输入=新扫描仪(系统输入);
字符串a=in.next();
名称.添加(a);
如果(a.等于(“退出”)){
系统输出打印项次(“退出”);
系统出口(0);
}
否则{
for(字符串naam:namen){
系统输出打印LN(naam);
}
}
计数++;
}
}
公共静态void main(字符串[]args){
addName addNames=新的addName();
addNames.name();
}

}尝试在循环中调用它。它只执行一次。请尝试以下操作:-

导入java.util.ArrayList; 导入java.util.Scanner

公共类地址名{

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();
}
private void name(){
ArrayList name=新的ArrayList();
整数计数=1;
而(计数>0){
System.out.print(“输入名称:”);
扫描仪输入=新扫描仪(系统输入);
字符串a=in.next();
名称.添加(a);
如果(a.等于(“退出”)){
系统输出打印项次(“退出”);
系统出口(0);
}
否则{
for(字符串naam:namen){
系统输出打印LN(naam);
}
}
计数++;
}
}
公共静态void main(字符串[]args){
addName addNames=新的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);
        }
    }
}
}
import java.util.ArrayList;
导入java.util.Scanner;
公共类地址名{
公共静态void main(字符串[]args){
ArrayList name=新的ArrayList();
System.out.print(“输入名称(或写入退出以关闭程序):”;
扫描仪输入=新扫描仪(系统输入);
字符串名称=in.next();
而(!name.equals(“退出”)){
名称n.添加(名称);
name=in.next();
}
if(name.equals(“exit”)){
系统输出
.println(“退出程序。输入的名称为:”);
for(字符串naam:namen){
系统输出打印LN(naam);
}
}
}
}

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);
        }
    }
}
}
import java.util.ArrayList;
导入java.util.Scanner;
公共类地址名{
公共静态void main(字符串[]args){
ArrayList name=新的ArrayList();
System.out.print(“输入名称(或写入退出以关闭程序):”;
扫描仪输入=新扫描仪(系统输入);
字符串名称=in.next();
而(!name.equals(“退出”)){
名称n.添加(名称);
name=in.next();
}
if(name.equals(“exit”)){
系统输出
.println(“退出程序。输入的名称为:”);
for(字符串naam:namen){
系统输出打印LN(naam);
}
}
}
}

OP程序中的ArrayList定义是正确的。他正在使用菱形运算符(
)在Java 7引入的右侧。但该列表随后为空,因此它只包含一个名称,OP希望其中包含更多名称。OP程序中的ArrayList定义是正确的。他在右侧使用菱形运算符(