gpt4 book ai didi

java - 从 CSV 文件中读取 NULL 值

转载 作者:行者123 更新时间:2023-11-30 10:12:12 25 4
gpt4 key购买 nike

我的申请有两个问题。第一个是我正在尝试从具有空值的 CSV 文件中读取一列。第二个是根据从 CSV 中读取的值,我应该更改上传到谷歌地图上的标记的颜色,但现在颜色根据最后读取的值更改,所有标记都获得相同的颜色而不是颜色基于它们对应的值。所以我的问题是:当应用程序从 CSV 获取空值时,如何阻止应用程序崩溃,我是否根据每个标记对应的值更改它们的颜色?

CSV 文件:

1,45.66680458,25.60458787,salvat
2,45.66672655,25.6047773,gresit
3,45.66670734,25.60465392,

更新后的工作代码:

 public void Upload() throws IOException {

File file = new File(getExternalFilesDir(null), "fisier.csv");
if (file.exists()) {
InputStream instream = new FileInputStream(file);
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader reader = new BufferedReader(inputreader);
List<LatLng> latLngList = new ArrayList<LatLng>();
String line = " ";
List<String> stares = new ArrayList<String>();
while ((line = reader.readLine()) != null) // Read until end of file
{
String[] tokens = line.split(",", 4);
double lat = Double.parseDouble(tokens[1]);
double lon = Double.parseDouble(tokens[2]);
stare = String.valueOf(tokens[3]);

latLngList.add(new LatLng(lat, lon));
stares.add(stare);
mMap.setOnMarkerClickListener(this);




}
reader.close();
for (int i = 0; i < latLngList.size(); i++) {
float color = 0;

if (stares.get(i).equals("gresit")) {
color = BitmapDescriptorFactory.HUE_BLUE;
}
else if (stares.get(i).equals("salvat")) {
color = BitmapDescriptorFactory.HUE_GREEN;
}
else {
color = BitmapDescriptorFactory.HUE_RED;
}
mMap.addMarker(new MarkerOptions()
.position(latLngList.get(i))
.title("Din CSV!")
.draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(color)));

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLngList.get(i), DEFAULT_ZOOM));

}

Toast.makeText(MapsActivity.this,"Fisierul a fost incarcat", Toast.LENGTH_SHORT).show();
}


else
{
Toast.makeText(MapsActivity.this,"Nu exista fisierul!", Toast.LENGTH_SHORT).show();
}

}

最佳答案

stare 定义另一个列表值(value)观:
List<String> stares = new ArrayList<String>();
latLngList.add(new LatLng(lat, lon)); 之后的 while 循环内添加这个:
stares.add(stare);

更改for循环:

    for (int i = 0; i < latLngList.size(); i++) {
if (stares.get(i).equals("gresit")) {
color = BitmapDescriptorFactory.HUE_BLUE;
} else if (stares.get(i).equals("salvat")) {
color = BitmapDescriptorFactory.HUE_GREEN;
} else {
color = BitmapDescriptorFactory.HUE_RED;
}
mMap.addMarker(new MarkerOptions()
.position(latLngList.get(i))
.title("Din CSV!")
.draggable(true)
.icon(BitmapDescriptorFactory.defaultMarker(color))

};

更新:
替换 stare = String.valueOf(tokens[3]);与:

try {
stare = String.valueOf(tokens[3]);
} catch (Exception e) {
stare = "";
e.printStackTrace();
}

因此如果没有第 4 列,应用程序不会崩溃。

关于java - 从 CSV 文件中读取 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51990501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com