Java 文本文件包含字符串和数字。如何查找与字符串关联的最大数字?

Java 文本文件包含字符串和数字。如何查找与字符串关联的最大数字?,java,java.util.scanner,Java,Java.util.scanner,我有一本书,我正在读 每行有一对(字符串、值)由逗号分隔。如何找到最大的数字并将其字符串存储在变量中以供以后使用?原因是我必须将这个字符串添加到hashmap中,用户才能继续玩游戏。文件大小会有所不同,因此可能会有更多对或更少对。这取决于我的游戏的用户何时想退出游戏 我唯一的代码是: try { File savedGame=new File("savedGame.txt"); Scanner scan=new Scanner(savedGame); //somethi

我有一本书,我正在读

每行有一对(字符串、值)由逗号分隔。如何找到最大的数字并将其字符串存储在变量中以供以后使用?原因是我必须将这个字符串添加到hashmap中,用户才能继续玩游戏。文件大小会有所不同,因此可能会有更多对或更少对。这取决于我的游戏的用户何时想退出游戏

我唯一的代码是:

try
{
    File savedGame=new File("savedGame.txt");
    Scanner scan=new Scanner(savedGame);

    //something goes here? 

} 
catch(FileNotFoundException fileError)
{
   System.out.println("The file was not Found!\n " + "ERROR:" + fileError);
}
更新:VIPER的方法是实现我所需要的最干净的方法

我的代码是:

    try
    {
    int largest=0;
    String startingStr="";
    File savedGame=new File("savedGame.txt");
    Scanner scan=new Scanner(savedGame);
        while(scan.hasNext())
        {               
            String line=scan.nextLine();
            String tokens[]=line.split(",");
            if(Integer.parseInt(tokens[1])>largest)
            {
                largest=Integer.parseInt(tokens[1]);
                startingStr=tokens[0];
            }
        }
    }
    catch(FileNotFoundException fileError)
    {
        System.out.println("The file was not Found!\n " + "ERROR:" + fileError);
    }

确定取一个整数变量并用0或最小整数初始化(若文件有负整数),然后取另一个变量字符串


所以现在要做的是逐行解析,如果数字大于整数变量,则将相应的字符串放入字符串变量中;处理完文件后,您将得到最大整数及其对应的字符串。

确定获取一个整数变量,并用0或最小整数初始化(如果文件具有负整数),然后获取另一个变量字符串


所以现在要做的是逐行解析,如果数字大于整数变量,则将相应的字符串放入字符串变量中;处理完文件后,将得到最大整数及其对应的字符串。

我会这样做:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Main {

    public static void main(String[] args) {
        String result = "";
        int temp = 0;
        String line = "";
        String path = "C:\\Users\\marco\\IdeaProjects\\untitled1\\src\\test.txt";
        try {
            java.io.BufferedReader fr = new java.io.BufferedReader(new java.io.FileReader(new File(path)));
            while ((line = fr.readLine()) != null) {
                String[] splitted = line.split(",");
                if(Integer.parseInt(splitted[1]) > temp){
                    temp = Integer.parseInt(splitted[1]);
                    result = line;
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(result);
    }
}

我不是Java专家。但它是有效的;)

我会这样做:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Main {

    public static void main(String[] args) {
        String result = "";
        int temp = 0;
        String line = "";
        String path = "C:\\Users\\marco\\IdeaProjects\\untitled1\\src\\test.txt";
        try {
            java.io.BufferedReader fr = new java.io.BufferedReader(new java.io.FileReader(new File(path)));
            while ((line = fr.readLine()) != null) {
                String[] splitted = line.split(",");
                if(Integer.parseInt(splitted[1]) > temp){
                    temp = Integer.parseInt(splitted[1]);
                    result = line;
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(result);
    }
}

我不是Java专家。但它是有效的;)

我有一个疑问,您是想要该文件中的最大数字,还是想要所有唯一字符串的最大数字?@AniketKulkarni我想要列表中的最大数字。例如,此文件中的最大值为2。因此,我想存储“WW”以便能够使用它。1)“我有一个我正在阅读的文本文件”,最好将其作为文本添加到问题本身,而不是作为文本的图像链接(或嵌入)。请做那件事。2) 但更好的是。。为了更快地获得更好的帮助,请发布一个or。数据(输入文本文件)可以作为
字符串
变量包含在MCVE/SSCCE代码中。我有一个疑问,您是想要该文件中的最大数字,还是想要所有唯一字符串的最大数字?@AniketKulkarni我想要列表中的最大数字。例如,此文件中的最大值为2。因此,我想存储“WW”以便能够使用它。1)“我有一个我正在阅读的文本文件”,最好将其作为文本添加到问题本身,而不是作为文本的图像链接(或嵌入)。请做那件事。2) 但更好的是。。为了更快地获得更好的帮助,请发布一个or。数据(输入文本文件)可以作为
字符串
变量包含在MCVE/SSCCE代码中;当您只需要字符串的输出(就像我刚才读取的一样)时,请使用:result=splitted[0];