簡體   English   中英

線程“ main”中的異常java.lang.NumberFormatException:對於輸入字符串:“”

[英]Exception in thread “main” java.lang.NumberFormatException: For input string: “ ”

我正在嘗試訪問Simulation.log文件中的兩個字符串值,並將這兩個值轉換為long類型。 這是日志文件的示例:

原木圓角

當我嘗試訪問字符串時,它告訴自己是空值。 我得到的錯誤是:

錯誤

我的代碼如下(我知道該語句沒有完全關閉):

File file = new File(simulationLogDir + "/simulation.log");
        FileReader simulationLogReader = new FileReader(file);
        BufferedReader bufferedReader = new BufferedReader(simulationLogReader);
        StringBuffer stringBuffer = new StringBuffer();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            String[] fields = line.split("\t");
            long responseTime = Long.parseLong(fields[5]) - Long.parseLong(fields[4]);
            if (line.startsWith("REQUEST")) {
                if (fields[7].equals("OK")) {
                    addPassedTest(fields[1], new Request(fields[4],responseTime, fields[7]));
                }

模擬日志中的每一行都由制表符分隔,因此,fields數組將每個字符串分隔開。

總結:

仔細檢查文件中是否有錯誤輸入的空格。

基於我所注意到的。 第8行(兩個parseLongs)確實容易受到異常的影響,或者可以說可以拋出NumberFormatException,特別是當它解析非數字字符串時。

什么時候發生? 基於線程“ main”中Exception問題的標題java.lang.NumberFormatException:對於輸入字符串:“” ,我很確定您文件中一行的實例,該實例在制表符后緊跟空格由Long.parseInt(string num)解析;

為了進一步解釋,我將給您2個示例情況。

情況1:文件中有一行如下所示

REQUEST(標簽)test_12345_54321(標簽)1(標簽)Macbook請求(標簽)(空格)1490183061440(標簽)1490183061321(標簽)確定

然后將按以下方式拆分此行:

字段[0] =請求
字段[1] = test_12345_54321
字段[2] = 1
字段[3] = Macbook請求
fields [4] =(空格)1490183061440
字段[5] = 1490183061321
字段[6] =好

解析第四個索引和第五個索引將是:

Long.parseLong(fields [4])-> 不能將空格解析為NumberFormatException的結果
Long.parseLong(fields [5])= 1490183061321->工作正常


情況2:文件中有一行如下所示

REQUEST(標簽)test_12345_54321(標簽)1(標簽)Macbook請求(標簽)1490183061440(標簽)(空間)(標簽)1490183061321(標簽)確定

然后將按以下方式拆分此行:

字段[0] =請求
字段[1] = test_12345_54321
字段[2] = 1
字段[3] = Macbook請求
字段[4] = 1490183061440
字段[5] =(空格)
字段[5] = 1490183061321
字段[6] =好

解析第四個索引和第五個索引將是:

Long.parseLong(fields [4])= 1490183061440->工作正常
Long.parseLong(fields [5])-> 不能將空格解析為NumberFormatException的結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM