在Java中,您需要使用String.equals()方法比較字符串,而不是邏輯==
運算符。
==
檢查兩件事是否完全相同,如果它們具有相同的內容,則不是這樣,因此某些字符串比較可以相等(相同的字符串),但使用==
進行不同的測試。
以下應該工作。
List<Feature> features = myFolder.getFeature();
for(int i=features.size()-1; i >= 0; i--)
{
if("myId".equals(features.get(i).getId()))
{
features.remove(i);
break;
}
}
這裏使用的文件夾中創建了兩個標JAK API示例代碼然後刪除一個通過它的id。在這個問題上
final Kml kml = new Kml();
final Folder folder = new Folder();
kml.setFeature(folder);
folder.setName("Folder.kml");
folder.setOpen(true);
final Placemark placemark1 = new Placemark().withId("1")
.withName("Folder object 1 (Placemark)");
folder.getFeature().add(placemark1);
final Placemark placemark2 = new Placemark().withId("2")
.withName("Folder object 2 (Placemark)");
folder.getFeature().add(placemark2);
List<Feature> features = folder.getFeature();
System.out.println(features); // dumps two features
for(int i=features.size()-1; i >= 0; i--)
{
Feature f = features.get(i);
if("1".equals(f.getId()))
{
// this removes feature with id = "1"
features.remove(i);
break;
}
}
System.out.println(features); // folder now only has one item
相關信息:
注意到。但這與我的問題無關。我想知道如何從文件夾/文檔中刪除地標,而不是如何正確比較字符串。 –
使用代碼示例更新答案,該代碼示例通過其ID刪除文件夾。 – JasonM1