Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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 ArrayList toString&;用户从列表中删除名称后更新列表 使用ArrayList类的toString方法打印ArrayList 要求用户提供要从列表中删除的名称。如果在列表中找不到该名称,请打印一条消息,说明该名称不在列表中。如果找到,请删除该名称,然后打印当前列表_Java_Arrays_Eclipse_Arraylist_Tostring - Fatal编程技术网

Java ArrayList toString&;用户从列表中删除名称后更新列表 使用ArrayList类的toString方法打印ArrayList 要求用户提供要从列表中删除的名称。如果在列表中找不到该名称,请打印一条消息,说明该名称不在列表中。如果找到,请删除该名称,然后打印当前列表

Java ArrayList toString&;用户从列表中删除名称后更新列表 使用ArrayList类的toString方法打印ArrayList 要求用户提供要从列表中删除的名称。如果在列表中找不到该名称,请打印一条消息,说明该名称不在列表中。如果找到,请删除该名称,然后打印当前列表,java,arrays,eclipse,arraylist,tostring,Java,Arrays,Eclipse,Arraylist,Tostring,我似乎无法让toString方法工作,也无法“如果找到了列表,请删除名称并打印当前列表” publicstaticvoidmain(字符串[]args)引发IOException { ArrayList=新建ArrayList(); //打开文件 File File=新文件(“input.txt”); 扫描仪输入文件=新扫描仪(文件); //一直读到文件的结尾 while(inputFile.hasNext()){ //String str=inputFile.nextLine(); 添加(in

我似乎无法让toString方法工作,也无法“如果找到了列表,请删除名称并打印当前列表”

publicstaticvoidmain(字符串[]args)引发IOException
{
ArrayList=新建ArrayList();
//打开文件
File File=新文件(“input.txt”);
扫描仪输入文件=新扫描仪(文件);
//一直读到文件的结尾
while(inputFile.hasNext()){
//String str=inputFile.nextLine();
添加(inputFile.next());
System.out.println(list.toString()+“”+list.size());
}
inputFile.close();
//在列表末尾添加一个名称
列表。添加(“迈克尔”);
System.out.println(“\n将michael添加到列表的末尾:\n”+list.toString());
//在位置2的列表中添加一个名称
增加(2,“露西”);
System.out.println(“\nLucy作为第三个名称添加到列表:\n”+list.toString());
//找到迈克尔的索引
System.out.println(“\nindexOf Michael是:“+list.indexOf(“Michael”)”);
//用迈克代替迈克尔
列表。集合(11,“麦克”);
System.out.println(“\n用Mike替换Michael:\n”+list.toString());
//要求用户提供要从列表中删除的名称
扫描仪输入=新扫描仪(System.in);
System.out.print(“您希望从列表中删除哪个名称?”);
字符串deleteName=input.nextLine();
//如果未找到名称,则显示消息
布尔值=false;
if(found==false)
System.out.println(“名称不在列表中”);
//如果找到名称,则删除名称并显示当前ArrayList
for(字符串a:列表){
如果(a.compareTo(deleteName)==0){
删除(a)段;
System.out.println(a+“已从列表中删除。以下是新列表:\n”+
list.toString());
}
}
//String str=(String)nameList.get(0);
}
//使用ArrayList类的toString方法。
公共字符串toString()
{
return list.toString();
}

我看到的第一个问题是您的列表不是全局的,因此您的toString()无法访问它


至于delete这个例子,我觉得没问题。

至于
delete
部分

试一试

不必循环


另外,要使
list
toString
方法可见,请将其设置为类字段。

定义“我不能”。您希望代码做什么,它会做什么?toString()的“找不到符号-变量列表”,我不确定如何通过toString()返回列表。错误的行号是多少?那一行有变量列表吗?line变量定义在哪里?你真的认为在一个方法中定义的变量对任何其他方法都是可用的吗?main方法的代码已经按照要求使用了ArrayList的toString()方法。我不知道为什么要在类中定义toString()方法。
public static void main(String[] args) throws IOException
{
    ArrayList<String> list = new ArrayList<String>();

    // Open the file
    File file = new File("input.txt");
    Scanner inputFile = new Scanner(file);

    // Read until the end of the file
    while(inputFile.hasNext()){
        //String str = inputFile.nextLine();
        list.add(inputFile.next());
        System.out.println(list.toString() + " " + list.size());
    }
    inputFile.close();

    // Add a name to the end of the list
    list.add("Michael"); 
    System.out.println("\nMichael is added to the end of the list: \n" + list.toString());

    // Add a name to the list in position 2
    list.add(2, "Lucy"); 
    System.out.println("\nLucy is added to the list as the third name: \n" + list.toString());

    // Find the indexOf Michael 
    System.out.println("\nindexOf Michael is: " + list.indexOf("Michael"));

    // Replace Michael with Mike
    list.set(11, "Mike");
    System.out.println("\nReplace Michael with Mike: \n" + list.toString());

    // Ask user for a name to delete from the list
    Scanner input = new Scanner(System.in);
    System.out.print("What name would you like to delete from the list? ");
    String deleteName = input.nextLine();

    // If name not found then display message
    boolean found = false;
    if(found == false)
        System.out.println("The name is not on the list");

    // If name found then delete name and show current ArrayList
    for(String a: list){
        if(a.compareTo(deleteName) == 0){
            list.remove(a);
            System.out.println(a + " was deleted from the list. Here is the new list:  \n" +
                               list.toString());
        }
    }
    // String str = (String)nameList.get(0);
}

// Use toString method of the ArrayList Class. 
public String toString()
{
    return list.toString();
}
if (list.contains (deleteName)) 
{
    list.remove (deleteName);
}