嗨,由于一些奇怪的原因我无法从 ArrayList 中删除某个项目,它会删除前4个项目,但不会从列表中删除城市任何建议大。感谢
String str = getset.getFILEMESSAGE();
ArrayList aList = new ArrayList(Arrays.asList(str.split(",")));
for (int i = 0; i < aList.size(); i++) {
System.out.println(aList.get(i));
System.out.println(aList.size());
}
aList.remove("Person ID");
aList.remove("First Name");
aList.remove("Last Name");
aList.remove("Street");
aList.remove("City");
System.out.println(aList);
System.out.println(aList.size());
String convertedmessage = aList.toString();
System.out.println("converted message = " + convertedmessage);
答案 0 :(得分:0)
正如您在评论中所说,字符串是: &#34;人员ID,名字,姓氏,街道,城市,Ola,Hansen,Timoteivn,Sandnes 2,Tove,Svendson,Borgvn,Stavanger 3,Kari,Pettersen,Storgt,Stavanger&#34;
如果确实如此,那么您的代码正常运行。 该String的最终输出将是: 转换信息= [Ola,Hansen,Timoteivn,Sandnes 2,Tove,Svendson,Borgvn,Stavanger 3,Kari,Pettersen,Storgt,Stavanger]
所以我很确定String存在问题。 尝试使用调试器并在执行期间向我们显示String的实际内容。
答案 1 :(得分:0)
String str = getset.getFILEMESSAGE();
ArrayList aList = new ArrayList(Arrays.asList(str.split(",")));
for (int i = 0; i < aList.size(); i++) {
if(aList.get(i).startsWith("City")){
String tmpString = aList.get(i);
String[] stringTab= new String[2];
stringTab= tmpString.split(" ");
aList.get(i) = stringTab[1];
}else if(....){ //Do the same for the others
aList.remove(i);
i--;
}
System.out.println(aList.get(i));
System.out.println(aList.size());
}
System.out.println(aList);
System.out.println(aList.size());
String convertedmessage = aList.toString();
System.out.println("converted message = " + convertedmessage);
答案 2 :(得分:0)
你应该在分割数组之前删除你不需要的字符串......就像这样......
String str = getset.getFILEMESSAGE();
String strWithOutIDNameStreetCity = str.substring(str.indexOf("City")+"City".length());
然后分开它,它只包含你需要的东西。
答案 3 :(得分:0)
如果所有条目包含相同的内容/值,则代码似乎是正确的。不过你的意见
我尝试更改没有工作的城市1我需要在我的列表中的1人员身份字符串人员ID,名字,姓氏,街道,城市1,Ola,Hansen,Timoteivn,Sandnes 2,Tove, Svendson,Borgvn,Stavanger 3,Kari,Pettersen,Storgt,Stavanger
暗示,值正在变化。 JajaDrinker的anwser看起来是正确的,但如果你想保持它非常简单,我只需要通过它们的索引删除条目。因为它们都在beginnig,所以下面的代码将删除列表的前五个条目,并且应该始终完成这项工作。
for(int i = 0; i < 5; i++)
aList.remove(0);