线程“main”中的异常java.lang.NumberFormatException:对于输入字符串:“”

时间:2017-04-11 17:06:12

标签: java long-integer filereader gatling

我试图在simulation.log文件中访问两个字符串值,并将这两个值转换为long类型。这是日志文件的一个示例:

Log Fille

当我尝试访问字符串时,它告诉自己是空值。我得到的错误是:

Error

我的代码如下(我理解语句没有完全关闭):

constructor(
    private navCtrl: NavController,
    private popoverCtrl: PopoverController, 
    pprivate navParams: NavParams, 
    private utilisateurService: UtilisateurService,
    private favoriService: FavoriService,
    private shareService: ShareService,
    private events:Events) { 
     this.events.subscribe('favori:selected', onFavChange);
  }

模拟日志中的每一行由选项卡式空格分隔,因此fields数组分隔每个字符串。

1 个答案:

答案 0 :(得分:0)

总结:

仔细检查您的文件是否有错误的空格。

基于我所注意到的。第8行(两个parseLongs)非常容易受到异常的影响,或者我们可以说可以抛出NumberFormatException,尤其是在解析非数字字符串时。

什么时候发生?基于问题的标题线程中的异常“main”java.lang.NumberFormatException:对于输入字符串:“”,我很确定你的文件中有一行的实例选项卡后面有一个空格,并且由Long.parseInt(字符串数字)巧合地解析;

为了进一步解释,我将给你2个样本情况。

情况1: 您的文件中有一行看起来像这样

  

请求(选项卡)test_12345_54321(选项卡)1(选项卡)Macbook请求(选项卡)(空格)1490183061440(选项卡)1490183061321(选项卡)确定

然后将以下列方式分割此行:

  

fields [0] = REQUEST
  fields [1] = test_12345_54321
  fields [2] = 1
  fields [3] = Macbook请求
   fields [4] =(space)1490183061440
   fields [5] = 1490183061321
  fields [6] = OK

解析第四个索引和第五个索引将是:

  

Long.parseLong(fields [4]) - > 空格无法解析为NumberFormatException 的结果   
  Long.parseLong(fields [5])= 1490183061321 - >工作正常

情况2: 您的文件中有一行看起来像这样

  

请求(选项卡)test_12345_54321(选项卡)1(选项卡)Macbook请求(选项卡)1490183061440(选项卡)(空格)(选项卡)1490183061321(选项卡)确定

然后将以下列方式分割此行:

  

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

解析第四个索引和第五个索引将是:

  

Long.parseLong(fields [4])= 1490183061440 - >工作良好   
  Long.parseLong(fields [5]) - > 空格无法解析为NumberFormatException

的结果