Java ArrayList toString&;用户从列表中删除名称后更新列表 使用ArrayList类的toString方法打印ArrayList 要求用户提供要从列表中删除的名称。如果在列表中找不到该名称,请打印一条消息,说明该名称不在列表中。如果找到,请删除该名称,然后打印当前列表
我似乎无法让toString方法工作,也无法“如果找到了列表,请删除名称并打印当前列表”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
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);
}