从ArrayList中查找以给定字符串开头的名称变量的Java方法

从ArrayList中查找以给定字符串开头的名称变量的Java方法,java,arraylist,Java,Arraylist,我制作了一个ArrayList.txt,其中包含一个学生及其成绩的列表,一个单独的班级学生包含getName(),getGrade(),getMarks()等,在我的主班级中,我有一个从这个方法中提取的主方法 因此,我的方法如下: public static String findName(ArrayList<Student> o, String name) { for(int i = 0; i < o.size(); i++) { if(o.

我制作了一个ArrayList.txt,其中包含一个学生及其成绩的列表,一个单独的班级学生包含
getName()
getGrade()
getMarks()
等,在我的主班级中,我有一个从这个方法中提取的主方法

因此,我的方法如下:

public static String findName(ArrayList<Student> o, String name) {

    for(int i = 0; i < o.size(); i++)
    {
        if(o.get(i).getName().startsWith(name.toLowerCase()))
            System.out.print(o.get(i));
    }
    return name;
}
但是,我的
findName()
方法无法提取所有以“al”开头的名称,即使我的所有其他方法都在工作。我还需要注意,该方法应该不区分大小写,并且我需要使用
.startsWith()
。有什么建议吗

另外,对于类型为student且文件名为字符串的给定ArrayList,我需要创建一个方法,使用student类toString方法格式将ArrayList的成员写入一个具有给定名称且元素为1的文本文件中的一行。我需要使用try/catch处理可能的异常。我还需要在代码中使用filereader、fileoutputsteam、printwriter和printstream

public static void nameToFile(ArrayList<Student> a, String file) {      

    int i = inone.read();
    FileReader inone = new FileReader(a.get(i).toString());
    FileOutputStream fos = new FileOutputStream(file);
    PrintWriter outone = new PrintWriter(fos);

    outone.close();
 }      
publicstaticvoidnametofile(arraylista,字符串文件){
int i=inone.read();
FileReader inone=newfilereader(a.get(i.toString());
FileOutputStream fos=新的FileOutputStream(文件);
PrintWriter outone=新的PrintWriter(fos);
outone.close();
}      
我的主要方法是

nameToFile(students2,“modified.txt”)

我还需要注意,该方法应该不区分大小写,并且我需要使用.startsWith()

如果希望
startsWith()
方法忽略大小写,只需在比较之前将两者转换为小写或大写:

if(o.get(i).getName().toLowerCase().startsWith(name.toLowerCase()))

如果您的
findName()
应该只返回一个名称,那么您可以在If条件下返回它。如果要返回名称列表,请将其添加到另一个arraylist,然后返回arraylist。

getName()
之后放置
toLowerCase()
?添加toLowerCase也可以!哇,我没意识到这有那么简单。谢谢至于将ArrayList的成员写入文本文件,有什么建议吗?我觉得另一个从未得到足够信任的选择是@FinFin,因为您可以随意编写。请注意,
System.out
也是一个
PrintWriter
,因此您可能已经熟悉该界面。您似乎正确地打开了输出文件,剩下的就是
将[ln]
打印到您想要写入的每个项目的内容中,然后关闭该文件。
if(o.get(i).getName().toLowerCase().startsWith(name.toLowerCase()))