Java方法,用于从ArrayList中的给定字符串开始查找名称变量

时间:2017-02-28 18:57:04

标签: 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.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");

1 个答案:

答案 0 :(得分:2)

  

此外,我需要注意该方法应该不区分大小写,我需要使用.startsWith()。

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

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

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