从ArrayList中查找以给定字符串开头的名称变量的Java方法
我制作了一个ArrayList.txt,其中包含一个学生及其成绩的列表,一个单独的班级学生包含从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.
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()))