我制作了一个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(students, "al");
我的array.txt看起来像这样
afafwafa
B
80
alicegg
C
70
lfhif
D
50
Allllleeee
A
94
但是我的findName()
方法无法提取以&#34; al&#34;开头的所有名称。即使我所有其他方法都有效。另外我需要注意的是,该方法应该不区分大小写,我需要使用.startsWith()
。有什么建议吗?
要添加,使用给定的带有字符串文件名的student类型的ArrayList,我需要创建一个方法,将arraylist的成员写入具有给定名称的文本文件,其中1个元素到使用学生的行class toString方法格式。我需要使用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();
}
我的主要方法有这个
nameToFile(students2,"modified.txt");
答案 0 :(得分:2)
此外,我需要注意该方法应该不区分大小写,我需要使用.startsWith()。
如果您希望startsWith()
方法忽略大小写,请在比较前将两者都转换为小写或大写:
if(o.get(i).getName().toLowerCase().startsWith(name.toLowerCase()))
如果你的findName()
应该只返回1个名字,你可以在if条件下返回它。如果要返回名称列表,请将其添加到另一个arraylist,然后返回arraylist。