猿问

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

我有一个正在阅读的文本文件


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


我唯一的代码是:


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);

    }


喵喵时光机
浏览 156回答 2
2回答

慕慕森

好的,取一个整数变量并用 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 专家。但它有效;)
随时随地看视频慕课网APP

相关分类

Java
我要回答