我有数据字符串数组,其中我存储了不同的字符串值,只有我要转换为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
答案 0 :(得分:1)
这是因为myData[7]
或myData[8]
处的数据不包含parsable
长值。调试或包含日志以查找不正确的值并进行更正。
使用double代替。
double latitude = Double.valueOf(myData[7]);
答案 1 :(得分:1)
34.0012143
和71.5452969
不是整数,不能解析为long。
使用Double.valueOf()
或Double.parseDouble()
将它们解析为双精度浮点数。
有些API希望看到long
微度而不是double
度。为此,乘以1e6
并转换为long
。