Java 如何避免android在将字符串转换为长字符串时出现数字格式异常?
我有一个数据的字符串数组,其中存储了不同的字符串值,我只想将数组中的两个值转换为long,但它显示了NumberFormatException,下面是我的代码。此外,Logcat显示索引7和8处的值 方法是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]);
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?它可能是一个字符串[],所以不清楚为什么要在日志行中将它与连接起来。。。