【问题标题】:How to Split an ArrayList in Android Using JAVA?如何使用 JAVA 在 Android 中拆分 ArrayList?
【发布时间】:2014-03-07 08:58:44
【问题描述】:

这是将值放入 ArrayList 的代码,我无法用“,”分割数组列表。有人可以帮助我如何完成这项任务吗?

           spinnerArrayList = new ArrayList<String>();
           spinnerArrayList.add(menuFieldInstance.getFieldValues());
           Log.i("spinnerArrayList",""+spinnerArrayList);  
          //for(int j=0;j<spinnerArrayList.size();j++)
          //{
          Log.i("spinnerArrayList after splitting ,",""+spinnerArrayList.get(0).split(","));
           //} 

这里是 Spinner ArrayList 和 SpinnerArrayList 拆分后的 Logcat ......

02-10 22:00:48.285: I/spinnerArrayList(19378): [0100~Avon & Somerset,0200~Bedfordshire,0300~Cambridgeshire,0400~Cheshire,0500~伦敦市,0600~Cleveland,0700~坎布里亚,0800~德比郡,0900~德文和康沃尔,1000~多塞特,1100~达勒姆,1200~埃塞克斯,1300~格洛斯特郡,1400~大曼彻斯特,1500~汉普郡,1600~赫特福德郡,1700~亨伯赛德,1800~肯特,1900 ~兰开夏郡,2000~莱斯特郡,2100~林肯郡,2200~默西塞德郡,2300~大都会,2400~诺福克,2500~北安普敦郡,2600~诺森比亚,2700~北约克郡,2800~诺丁汉郡,2900~南约克郡,3000~斯塔福德郡,3100 ~萨福克,3200~萨里,3300~苏塞克斯,3400~泰晤士河谷,3500~沃里克郡,3600~西麦西亚,3700~西米德兰兹,3800~西约克郡,3900~威尔特郡,4000~戴菲德,4100~格温特,4200~北Wales,4300~South Wales,4400~Royal Ulster,4500~Strathclyde,4600~Central Scotland,4700~Dumfries and Galloway,4800~Fife,4900~Grampian,5000~Lothian and Borders,5100~Northern Scotland,5200~Tayside, 5300~格恩西,5400~泽西州,5500~马恩岛,NO~No P olice Response,THAM~THAMES VALLEY,WEST~WEST MIDLANDS POLICE,5600~Buckinghamshire] 02-10 22:00:48.285: 拆分后的 I/spinnerArrayList ,(19378): [Ljava.lang.String;@41b9a498

【问题讨论】:

  • split 返回一个字符串数组,所以如果你想得到它的值,你需要记录一个索引而不是像这样记录所有数组。
  • 你能给我示例代码或编辑我的代码
  • Arraylist 包含离散元素,你不要“拆分”它,它已经“拆分”了。只需将get() 与索引一起使用即可。
  • spinnerArrayList.get(0).split(",")[i] 其中iint 在数组中的位置

标签: java android arraylist split


【解决方案1】:
// try to print this way then you getting actual value at index becz your try to print String[] object rather each index value so do this way
spinnerArrayList = new ArrayList<String>();
spinnerArrayList.add("");
for (int i=0;i<spinnerArrayList.size();i++){
        String[] splitedValue = spinnerArrayList.get(i).split(",");
        for (int j=0;j<splitedValue.length;j++){
            Log.i(i+" at ArrayIndex "+j+" at splitedIndex Value is >> ",splitedValue[j]);
            String[] splitedValue1 = splitedValue[j].split("~");
            if(splitedValue1.length==1){
                continue;
            }
            for (int k=0;k<splitedValue1.length;k++){
                Log.i(j+" at splitedIndex "+k+" at splited1Index Value is >> ",splitedValue1[k]);
            }
        }

    }

【讨论】:

  • 你能帮我吗?我想在 splitedValue[j] 中拆分“~”,但我没有这样做.....我在 ArrayIndex 处写了 Log.i(j+" +k+" at splitedIndex 值为 >> ",splitedValue[k].split("~"));
  • 我已对其进行了编辑,请查看代码以及为什么要放置 if(splitedValue1.length ==1){ continue; }
  • 好吧,试着评论这段代码,看看有什么不同,然后你就会明白我为什么要放它......
  • 你能给我你想要拆分的文本吗?
【解决方案2】:

您不能拆分ArrayList。您可以拆分 String,例如 "I am some String, you can split me".split(",") 将返回一个包含 2 个字符串的数组,但 ArrayList 是一个包含一些字符串的数据结构,并不意味着它们用逗号分隔。您可以尝试拆分列表的每个项目,例如

for (String s : spinnerArrayList) {
    String[] res = s.split(",");
    // do smth with res
}

【讨论】:

    【解决方案3】:

    spinnerArrayList.get(0).split(",") 不会拆分“arrayList”,它会在索引零处拆分字符串,并且由于返回的结果是字符串数组 - 您不能使用 + 运算符将其连接到另一个字符串:

    Log.i("spinnerArrayList after splitting ,",""+spinnerArrayList.get(0).split(","));
    

    先将分割后的字符串读入String数组:

    String[] arr = spinnerArrayList.get(0).split(",");
    

    然后循环数组并打印值"

    for(String val: arr){
        Log.i(val);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多