Java ArrayList未删除项

Java ArrayList未删除项,java,arrays,arraylist,Java,Arrays,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(

您好,由于某种奇怪的原因,我无法从阵列列表中删除项目,它会删除前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);
String str=getset.getFILEMESSAGE();
ArrayList aList=新的ArrayList(Arrays.asList(str.split(“,”));
对于(int i=0;i
正如您在评论中所说,字符串是: “个人ID、名字、姓氏、街道、城市、奥拉、汉森、蒂莫蒂文、桑德斯2、托夫、斯文森、博格文、斯塔万格3、卡里、佩特森、斯托格特、斯塔万格”

如果这是真的,那么您的代码正在工作。 带有该字符串的最终输出为: 转换消息=[Ola、Hansen、Timoteivn、Sandnes 2、Tove、Svendson、Borgvn、Stavanger 3、Kari、Pettersen、Storgt、Stavanger]

所以我很确定字符串有问题。 尝试使用调试器,并在执行过程中向我们显示字符串的实际内容。

String str=getset.getFILEMESSAGE();
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);
ArrayList aList=新的ArrayList(Arrays.asList(str.split(“,”)); 对于(int i=0;i
在拆分数组之前,您可能应该删除不需要的字符串。。。像这样

String str = getset.getFILEMESSAGE();
String strWithOutIDNameStreetCity = str.substring(str.indexOf("City")+"City".length());

然后拆分它,它只包含您需要的内容。

如果所有条目都包含相同的内容/值,则代码似乎是正确的。但是你的评论

我试着改变不起作用的城市1我需要列表中的1作为个人id这里是字符串个人id,名字,姓氏,街道,城市1,奥拉,汉森,蒂莫蒂文,桑德斯2,托夫,斯文德森,博格文,斯塔万格3,卡里,佩特森,斯托格特,斯塔万格

这意味着值正在更改。Jadrinker的anwser看起来是正确的,但是如果你想让它变得非常简单,我只需要通过索引删除条目。由于它们都在开始阶段,下面的代码将删除列表中的前五个条目,并且应该始终执行此操作

for(int i = 0; i < 5; i++)
    aList.remove(0);
for(int i=0;i<5;i++)
移除(0);

输出是什么样的?列表中是否有“城市”?检查示例代码中是否有隐藏字符,例如“\n”用要拆分的字符串替换
getset.getFILEMESSAGE()
。然后我们可能会帮忙。发布输入数据。我们需要查看
getset.getFILEMESSAGE()
中的内容。您好,该代码删除了城市,但它也删除了第一行,这是输出转换后的消息3=2,Tove,Svendson,Borgvn,Stavanger 3,Kari,Pettersen,Storgt,Stavanger]谢谢您的帮助,它删除了城市。。谢谢大家的帮助。。衷心感谢:-)