我试图在simulation.log文件中访问两个字符串值,并将这两个值转换为long类型。这是日志文件的一个示例:
当我尝试访问字符串时,它告诉自己是空值。我得到的错误是:
我的代码如下(我理解语句没有完全关闭):
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数组分隔每个字符串。
答案 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