Java 如何避免android在将字符串转换为长字符串时出现数字格式异常?

Java 如何避免android在将字符串转换为长字符串时出现数字格式异常?,java,android,Java,Android,我有一个数据的字符串数组,其中存储了不同的字符串值,我只想将数组中的两个值转换为long,但它显示了NumberFormatException,下面是我的代码。此外,Logcat显示索引7和8处的值 方法是 private void dataSpliter(String data) { final String[] myData= data.split("[Â]+"); Log.e("First Name", ""+myData[0]);

我有一个数据的字符串数组,其中存储了不同的字符串值,我只想将数组中的两个值转换为long,但它显示了NumberFormatException,下面是我的代码。此外,Logcat显示索引7和8处的值

方法是

private void dataSpliter(String data) 
    {
        final String[] myData= data.split("[Â]+");

        Log.e("First Name", ""+myData[0]);
        Log.e("Last Name", ""+myData[1]);
        Log.e("Father", ""+myData[2]);
        Log.e("Gender", ""+myData[3]);
        Log.e("DOB", ""+myData[4]);
        Log.e("Contact", ""+myData[5]);
        Log.e("Address", ""+myData[6]);
        Log.e("Latitude", ""+myData[7]);
        Log.e("Longitude", ""+myData[8]); 

        latitude  = (long)Long.valueOf(myData[7]);
        longitude = (long)Long.valueOf(myData[8]);
}

Logcat显示值myData[7]=34.0012143和myData[8]=71.5452969这是因为myData[7]或myData[8]处的数据不包含可解析的长值。调试或包含日志以查找不正确的值并更正它

改用double

double latitude  = Double.valueOf(myData[7]);
34.0012143和71.5452969不是整数,不能作为长字符进行分析

使用double.valueOf或double.parseDouble将它们解析为双精度浮点


一些API希望看到长微度数,而不是双度数。为此,乘以1e6并转换为long。

将异常与您的问题一起发布。也无需将其强制转换为long。显示完整代码和完整stacktrace。此外,在stacktrace中可以看到的索引7和8处发布字符串值…@GopalRao:What is myData here?它可能是一个字符串[],所以不清楚为什么要在日志行中将它与连接起来。。。