Java 读取txt文件并比较值

Java 读取txt文件并比较值,java,string,eclipse,integer,Java,String,Eclipse,Integer,在我的hackathon回合中,我被要求解决一个问题,这个问题是从服务器读取一个.txt文件,然后构建一个逻辑来读取它,并从该文件中给出的所有击球手中打印出得分最高的击球手 txt文件名是cricket.txt,看起来像这样 Rohit Sharma|264 M.S Dhoni|198 Rahul Dravid|235* 就像这样,每个球员的名字都在新的一行,他们希望我打印出我们击球手的最高得分和非我们击球手的最高得分。 没有出局的击球手得分手马克和明星马克紧随其后的是他们的得分。 O/p格式

在我的hackathon回合中,我被要求解决一个问题,这个问题是从服务器读取一个.txt文件,然后构建一个逻辑来读取它,并从该文件中给出的所有击球手中打印出得分最高的击球手

txt文件名是cricket.txt,看起来像这样

Rohit Sharma|264
M.S Dhoni|198
Rahul Dravid|235*
就像这样,每个球员的名字都在新的一行,他们希望我打印出我们击球手的最高得分和非我们击球手的最高得分。 没有出局的击球手得分手马克和明星马克紧随其后的是他们的得分。 O/p格式:

Rohit Sharma|264
Rahul Dravid|235*
你们能帮我解决这个问题吗,我已经试过bt了,不知怎的,我发现了数字格式的异常

注意:不允许使用套接字读取文件。 (请使用Java执行以下操作)

我的代码如下(数字格式例外)

然后我试着这样做来纠正实际问题

public static void main(String[] args) throws IOException {
String s = "Rohit Sharma|264";
String[] spS = s.split("\\|");
int j = 0;          
j = Integer.parseInt(spS[1]);
System.out.println(j);
}

但在这里我得到了正确的输出,为什么?如何?我在那里也做了同样的事情,我收到了异常。

我得到的答案代码如下:

public static void main(String[] args) throws IOException {
URL url = new URL("192.168.1.3:8003/cricket.txt");
String data = new Scanner( url.openStream() ).useDelimiter("\\A").next();
int temp = 0;
for(int i=0; i<spData.length; i++) {
    String[] ns = spData[i].split("\\|");
    int temp1 = Integer.parseInt(ns[1]);
    if(temp < temp1) {
        temp = temp1;
     }       
  }
  System.out.println("Highest score is"+temp);
}
package interview;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;


public class CricketScore {

public static void main(String[] args) throws IOException {

   URL url = new URL("192.168.1.3:8003/cricket.txt");
   String data = new Scanner( url.openStream() ).useDelimiter("\\A").next();
   int out = 0;
    String outName = "";
    int nOut = 0;
    String nOutName = ""; 
    //System.out.println(data);
    String[] spData = data.split("\r");

    for(int i=0; i<spData.length; i++) {
        String[] ns = spData[i].split("\\|");
        if(ns[1].contains("*")==false) {
        int temp1 = Integer.parseInt(ns[1]);            
            if(out < temp1) {
                out = temp1;
                outName = ns[0];
            }
        }
    }
    for(int i=0; i<spData.length; i++) {
        String[] ns = spData[i].split("\\|");
        if(ns[1].contains("*")) {
            String temp1 = ns[1].replace("*", "");
            int temp2 = Integer.parseInt(temp1);            
            if(nOut < temp2) {
                nOut = temp2;
                nOutName = ns[0];
            }
        }
    }
    System.out.println("Highest scorer from the Out batsman is "+outName +"|"+out);
    System.out.println("Highest scorer from the Not Out batsman is "+nOutName+"|"+nOut);

}
}
package访谈;
导入java.io.IOException;
导入java.nio.file.Files;
导入java.nio.file.path;
公开课板球成绩{
公共静态void main(字符串[]args)引发IOException{
URL=新URL(“192.168.1.3:8003/cricket.txt”);
字符串数据=新扫描仪(url.openStream()).useDelimiter(\\A”).next();
int out=0;
字符串outName=“”;
int-nOut=0;
字符串nOutName=“”;
//系统输出打印项次(数据);
字符串[]spData=data.split(“\r”);

对于(int i=0;当你遇到异常时,正确的做法是不要退出并询问人们如何为你做每件事。正确的做法是阅读消息和异常堆栈跟踪,查看抛出的位置,异常的含义,找到抛出的原因,并修复代码。你还没有发布任何我们可以提供帮助的信息是的,就像你说要添加代码一样,我也有添加的代码片段,请看一看。我正在尝试将其类型转换为整数(例如:264),然后idk如何将264正确格式化为整数。好的。所以异常告诉你它无法解析ns[1]作为一个整数,对吗?那么,为什么不使用调试器,或者干脆在代码中添加一个println(),或者简单地考虑一下代码在做什么,以了解ns[1]是什么,以及为什么它不能被解析为整数?您甚至不需要这样做,因为异常的错误消息,您不必费心发布(因此可能也不需要阅读),告诉您它是什么。请阅读异常消息。学习使用调试器。您的拆分不正确。好的,先生,谢谢您的建议,我将重试。
package interview;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;


public class CricketScore {

public static void main(String[] args) throws IOException {

   URL url = new URL("192.168.1.3:8003/cricket.txt");
   String data = new Scanner( url.openStream() ).useDelimiter("\\A").next();
   int out = 0;
    String outName = "";
    int nOut = 0;
    String nOutName = ""; 
    //System.out.println(data);
    String[] spData = data.split("\r");

    for(int i=0; i<spData.length; i++) {
        String[] ns = spData[i].split("\\|");
        if(ns[1].contains("*")==false) {
        int temp1 = Integer.parseInt(ns[1]);            
            if(out < temp1) {
                out = temp1;
                outName = ns[0];
            }
        }
    }
    for(int i=0; i<spData.length; i++) {
        String[] ns = spData[i].split("\\|");
        if(ns[1].contains("*")) {
            String temp1 = ns[1].replace("*", "");
            int temp2 = Integer.parseInt(temp1);            
            if(nOut < temp2) {
                nOut = temp2;
                nOutName = ns[0];
            }
        }
    }
    System.out.println("Highest scorer from the Out batsman is "+outName +"|"+out);
    System.out.println("Highest scorer from the Not Out batsman is "+nOutName+"|"+nOut);

}
}