假如有个数组为 String[] num = {"1001 2002 3003 4004 5005"};
请问如何将这个集合里的元素取出来并且跟一个变量n去对比,
n从0开始到10000结束,如果n和num里的值相等就打印出来,不相等则输出*号

解决方案 »

  1.   

    首先“String[] num = {"1001 2002 3003 4004 5005"};”这个数组我估计楼主是想这样的吧
    :String[] num = {"1001", "2002", "3003", "4004", "5005"};
    “n从0开始到10000结束”是指n在这个区间的摸个固定值呢还是在这个区间里变化的?
      

  2.   

    public static void main(String[] args) {
    String[] arr = { "1001 2002 3003 4004 5005" };
    String[] a = arr[0].split(" ");
    for (String str : a) {
    for (int n = 0; n <= 10000; n++) {
    if (Integer.valueOf(str) == n) {
    System.out.println(n);
    } else {
    System.out.println("*");
    }
    }
    }
    }
    思路是这样。不复杂、不过1W太大了。控制太显示不全、不好贴运行结果。自己换个小点的数字试试
      

  3.   

    String num = "1001 2002 3003 4004 5005"; // 应该是这样写,你本来就不是个数组。
    String arrs = num.split(" "); // 用空格切分成数组
    List lst = Arrays.toList(arrs); // 转换为List
    HashSet hs = new HashSet(lst); // 再转换为Hash集,便于快速识别for (int i=0;i<=10000;i++) {
      if (hs.contains(String.valueOf(i))) { // 检查是否包含
      System.out.println(i);
      }
    }以上为了清晰,我逐句拆出来了,希望你能理解。
      

  4.   

    LZ的数组到底是什么形式的,是只有一个字符串,还是笔误有多个字符串?
    String[] num = {"1001", "2002", "3003", "4004", "5005"};
    int[] arr = new int[10001]; 
    //或者用List 
    //List<Integer> list = new ArrayList<Integer>();
    for (int i=0; i<=10000; i++) {
        arr[i] = i;
        //list.add(i);
    }
    for (String s : num) {
        int n = Ineteger.valueOf(s);
        if (Arrays.binarySearch(arr, n) >= 0) { //用数组的查找判断是否存在
        //if (list.contains(n)) { //或者用list的contains判断是否存在
            System.out.println(s);
        } else {
            System.out.println("*");
        }
    }
      

  5.   


    public static void main(String[] args) {
    String[] arr = { "1001 2002 3003 4004 5005" };
    String[] a = arr[0].split(" ");
    int count = 0;
    for (String str : a) {
    for (int n = 0; n <= 10000; n++) {
    if (Integer.valueOf(str) == n) {
    System.out.println(n);
    } else {
    count++;
    System.out.println("*");
    }
    }
    }
    System.out.println(count);
    }
    count会输出啊、。怎么会死循环
      

  6.   

    2L的代码木有死循环吧,只不过它循环套循环,比较慢,而且
    用集合或数组直接查找可能更好一些public static void main(String[] args) {
        String[] arr = { "1001 2002 3003 4004 5005" };
        String[] a = arr[0].split(" ");
        List<Integer> list = new ArrayList<Integer>();
        for (int i=0; i<10000) list.add(i);
        for (String str : a) {
            int n = Integer.valueOf(str);
            if (list.contains(n)) {
                System.out.println(n);
            } else {
                System.out.println("*");
            }
        }
    }
      

  7.   

    public class TTT { /**
     * @param args
     */
    public static void main(String[] args) { String[] num = {"1001", "2002", "3003", "4004", "5005"};
    String[] arr = new String[10001];  for (int i = 0; i <=10000; i++){
    arr[i] = "*" ;
    }
    for(int i= 0; i < num.length; i++){
    arr[Integer.parseInt(num[i])] = num[i] ;
    }
    System.out.println("--start--") ;
    for (int i = 0; i <=10000; i++){
    System.out.println(arr[i] ) ;
    }
    System.out.println("--end--") ;
    }}