使用字符串和整数读取文本文件并根据值进行测试(Java)

时间:2015-11-13 14:12:43

标签: java string file text

这是我想做的。我想创建一个包含一个字符串和一个整数的简单文本文件,并以这种格式从中读取我的程序:

name 3
name2 4
name5 5

只是一个由空格分隔的字符串,然后是整数。

这是一个排名系统,所以基本上它需要成员的用户名并将其排名设置为int,例如:

if (username.toLowerCase() == (stringFromFile)) {
rank = (rankFromFile)
}

我找不到任何关于如何从文件中读取多个字符串和整数但是单独测试每个字符串的内容。

这是我现在正在做的方式,但我不喜欢它在代码中的样子,所以我想将用户名存储在其他地方。

    private void RankLoad() {
    switch(username.toLowerCase()){
        case "example":
            rank = 3;
        break;
        case "example1":
            rank = 0;
        break;
        case "example2":
            rank = 0;
        break;
        case "example3":
            rank = 0;
        break;
}

3 个答案:

答案 0 :(得分:1)

使用Scanner并逐行阅读文件。然后用空格分隔行:line.split(" ");然后解析int,它将是数组的[1]。现在你已经解析了你的数据,所以你可以随意使用它......

答案 1 :(得分:0)

使用类似Scanner scanner = new Scanner (new File("your_file.txt")); scanner.useDelimiter(" ");的内容,然后使用while(scanner.hasNext()) {scanner.next() // use it to retrieve next value}

答案 2 :(得分:0)

OP在这里,这就是我最终做到这一点的方式,我测试了它并且它有效,如果有人有任何建议我欣赏建设性的批评。感谢

    public void readStaff() throws FileNotFoundException{
    Scanner input = new Scanner(new File("stafflist.txt"));
    String player;
    int rank;
    while (input.hasNextLine()) {
        player = input.next();
        rank = input.nextInt();
    if (player.equals(username.toLowerCase())){
            rights = rank;
            } else {
                rights = 0;}}}

private void StaffLoad() {
    try { readStaff(); } catch (FileNotFoundException e) {
        System.out.println("Cannot Find stafflist.txt"); }}