ArrayList没有删除项目

时间:2014-04-17 13:39:13

标签: java arrays arraylist

嗨,由于一些奇怪的原因我无法从 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);

4 个答案:

答案 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);