本帖最后由 ppStudent 于 2014-11-28 13:34 编辑
有一个ArrayList<String>集合共有4个元素:"1234",“5678”,"9101",“1112”,现在我想要在将该集合拆分成单独的数字子串,比如"1234"就变成了'1','2','3','4',有下面几种错误,有些我理解,有些我不理解的 错误:
1、- public class yiwen1
- {
- public static void main()
- {
- List<String> listA = new ArrayList<String>();
- listA.add("1234");
- listA.add("5678");
- listA.add("9101");
- listA.add("1112");
- listA=change1(listA);
- }
- public static List<String> change1(List<String> list)
- {
- for(Iterator<String> it=list.iterator();it.hasNext()!=false;)
- {
- String str = it.next();
- char[] arr=str.toCharArray();//将每一个字符串转为字符数组
- for(int i=0;i<arr.length;i++)
- {
- list.add(String.valueOf(arr[i]));//将每个字符存入集合
- }
- list.remove(str);//会出现ConcurrentModificationException异常
- //删除原有的元素,在通过Iterator进行遍历的时候,如果直接对list进行操作后,再继续用之前的Iterator进行遍历就会出现这个异常,表示其已经被修改
- }
- return list;
- }
复制代码 会出现的错误已经很明显了,在迭代器内部是不能对调用该迭代器的对象进行直接操作的,要用迭代器来操作
2、这个有疑问:
- package com.itheima;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import java.util.ListIterator;
- public class yiwen1
- {
- public static void main(String[] args)
- {
- List<String> listA = new ArrayList<String>();
- listA.add("1234");
- listA.add("5678");
- listA.add("9101");
- listA.add("1112");
- listA=change1(listA);
- System.out.println(listA);
- }
- public static List<String> change1(List<String> list)
- {
- for(ListIterator<String> it=list.listIterator();it.hasNext()!=false;)
- {
- String str = it.next();
- char[] arr=str.toCharArray();//将每一个字符串转为字符数组
- for(int i=0;i<arr.length;i++)
- {
- it.add(String.valueOf(arr[i]));//将每个字符存入集合
- }
- it.remove();//使用迭代器的操作集合方法
- }
- return list;
- }
- }
复制代码 //这个不知道为什么是错的?3、又或者这样- import java.util.*;
- public class yiwen1
- {
- public static void main(String[] args)
- {
- List<String> listA = new ArrayList<String>();
- listA.add("1234");
- listA.add("5678");
- listA.add("9101");
- listA.add("1112");
- listA=change1(listA);
- System.out.println(listA);
- }
- public static List<String> change1(List<String> list)
- {
- for(ListIterator<String> it=list.listIterator();it.hasNext()!=false;)
- {
- it.add("22");//将每个字符存入集合
- }
- return list;
- }
复制代码
|
|