什么是以下问题的相反方向:
savedPlanets.append(planet.getDisplayName()+",");
我有一个列表,每次用户点击复选框时,我都会添加行星的名称。如果清除复选框,则希望从savedPlanets中删除名称。
什么是以下问题的相反方向:
savedPlanets.append(planet.getDisplayName()+",");
我有一个列表,每次用户点击复选框时,我都会添加行星的名称。如果清除复选框,则希望从savedPlanets中删除名称。
savedPlanets.replace(planet.getDisplayName(),"");
Set<String> selectedPlanets = new HashSet<String>();
selectedPlanets.add(planet.getDisplayName()); // Whenever a planet is selected
selectedPlanets.remove(planet.getDisplayName()); // Whenever a planet is removed
// Prepare a String with all planets
StringBuilder savedPlanets = new StringBuilder("");
for(String planetName : selectedPlanets ){
savedPlanets.append(planetName).append(",");
}
// Removing , from the end if any
if(savedPlanets.toString().endsWith(","))
finalValue = savedPlanets.substring(0, savedPlanets.length()-1);
// finalValue is what you are looking for
我会每次重新构建字符串,只包含您想要包含的元素。
例如:
Set<Planet> planets = ...
StringBuilder sb = new StringBuilder();
String sep = "";
for(Planet planet: planets) {
sb.append(sep).append(planet.getDisplayName());
sep = ",";
}
String planetNames = sb.toString();
我认为你正在使用StringBuffer或类似的东西。在这种情况下,这不是一个好的解决方案,我建议你使用Set。http://docs.oracle.com/javase/6/docs/api/java/util/Set.html
像这样实现:
Set planets = new HashSet();
planets.add("a");
planets.add("b");
planets.remove("a");
假设...
APPEND:savedPlanets.append(planet.getDisplayName()+",");
APPEND的反义词:savedPlanets.replaceAll(planet.getDisplayName()+",","");
示例:
savedPlanets.append("Earth,");
savedPlanets.append("Mercury,");
savedPlanets.append("Venus,");
现在 savedPlanetes = "地球,水星,金星,";
然后
savedPlanets.replaceAll("Venus,",""); <-----
现在的值将会是savedPlanetes= "地球,水星,"