使用缓冲读卡器查找单词

时间:2015-05-22 12:27:57

标签: java while-loop bufferedreader readline stringtokenizer

我正在解析具有以下文本和相同格式的文件,

姓名:_____性别:_____

年龄:_____年级:______

解析时,我想首先看一下"性别:f"或"性别:m" &安培;例如"性别:f"然后我将创建一个新的女孩对象并设置她的名字,年龄和年级。如果是男孩,我会创建一个新的男孩对象,并设置他的名字,年龄和年级。

我的代码目前仅适用于一种性别。我不确定如何实施它来搜索其他性别。

while ((line = br.readLine()) != null) {
    line = line.trim();
    st = new StringTokenizer(line);
    if (line.endsWith("gender: f")) {
        f = new female();
        st.nextToken(); 
        String name = st.nextToken();
        f.setName(name);                    
    } else if (line.startsWith("age:")) {
        st.nextToken();
        String age= st.nextToken();
        f.setAge(age);
        line = br.readLine();
    }       
}

请帮忙!感谢。

2 个答案:

答案 0 :(得分:0)

你不能试试这个:

var clicks = 0;

$('li').on('click', function () {
    var element = '<div></div>';
    // per click it should change the addClass
    if (clicks % 2 == 0) { //check for an even number
        $(this).append($(element).addClass('even'));
    } else {
        $(this).append($(element).addClass('odd'));
    }

    clicks++;
});

}

答案 1 :(得分:0)

假设您的文件只包含一个人,您可以执行以下操作:

while ((line = br.readLine()) != null) {
    line = line.trim();
    st = new StringTokenizer(line);

    if (line.endsWith("gender: f")) {
        person = new Female(); // Your Java classes's name should start with a capital letter (coding convention)
        st.nextToken(); 
        String name = st.nextToken();
        person.setName(name);                    
    } else if (line.endsWith("gender: m")) {
        person = new Male();
        st.nextToken(); 
        String name = st.nextToken();
        person.setName(name);                    
    } else if (line.startsWith("age:")) {
        if(person != null) { // person can be null if the first line of your file is wrong
            st.nextToken();
            String age = st.nextToken();
            person.setAge(age);
        }
        line = br.readLine();
    }       
}