A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
把数组int old[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};中的0去掉生成新数组*/   
public class Test05{
   public static void main(String args[]){
        int old[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
        int a[]=new int[12];
       for(int i=0;i<old.length;i++){
       if(old!=0){
      for(int j=0;j<old.length;j++){
          a[j]=old;
      }
   }
  }
  for(int c=0;c<a.length;c++){
   System.out.println(a[c]);
  }
   }
  }
  这个是我写的   貌似报错找不到主方法
Could not find the main class: org.apache.fop.cli.Main.  Program will exit.
Exception in thread "main"

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

11 个回复

倒序浏览
  if(old!=0)      a[j]=old;这两句都有点问题。 你修改下试一下、
回复 使用道具 举报
本帖最后由 伍叶竹 于 2014-4-28 12:29 编辑

东改改 西改改  总算可以了。 你看看。你的那个错误我一直没看见。 if(old!=0)      a[j]=old;这两句都犯得同一个错误。不是同一个类型。
  1. public class Test05{
  2.    public static void main(String args[]){
  3.     int old[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
  4.     int a[]=new int[12];
  5.        for(int i=0,j=0;i<old.length;i++){
  6.         if(old[i]!=0){
  7.             a[j++]=old[i];
  8.                         
  9.                 }
  10.       
  11.    }
  12.   
  13.   for(int j=0;j<a.length;j++){
  14.    System.out.println(a[j]);
  15.   }
  16.    }
  17. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 evar71 于 2014-4-28 14:34 编辑
  1. class Test05
  2. {
  3.         public static void main(String args[])
  4.         {
  5.                 int old[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
  6.                 StringBuffer a = new StringBuffer();
  7.                 int i = 0;
  8.                      for(int j=0;j<old.length;j++)
  9.                 {
  10.                           if(old[j]!=0)
  11.                                 a.append(old[j]);               
  12.                      }

  13.                         System.out.println(a);
  14.         }
  15. }
复制代码
if(old!=0)和a[j]=old两句话都是错的,整个数组不能和单个元素作比较啊。另外,找不到主函数应该是你运行时候错写成了 java Test05.java,不要写后缀

评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

回复 使用道具 举报
本帖最后由 zfan 于 2014-4-28 16:58 编辑

首先,报错找不到主方法的原因有很多,楼主不妨依次检查一下输入的程序运行路径、JDK环境变量的设置是否准确,JDK版本与开发环境设置是否相匹配,根据排除法的原理一步一步来排查问题究竟出在哪里;
其次,学习了一下楼主的代码,自己也根据需求做了一遍:
  1. public class Test05
  2. {
  3. public static void main(String[] args)
  4. {
  5.   int len=0;
  6.   int oldArray[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
  7.   //获取新数组的长度;
  8.   for(int i=0;i<oldArray.length;i++)
  9.   {
  10.    if(oldArray[i]!=0)
  11.    len++;
  12.   }
  13.   //定义新数组;
  14.   int newArray[] = new int[len];
  15.   //将原数组中的值转移到新数组中;
  16.   for(int i=0,j=0;i<oldArray.length;i++)
  17.   {
  18.    if(oldArray[i]!=0)
  19.    newArray[j++] = oldArray[i];
  20.   }
  21.   //在命令行中输出新数组;
  22.   for(int i=0;i<newArray.length;i++)
  23.   {
  24.    System.out.println(newArray[i]);
  25.   }
  26. }
  27. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
itpower + 1

查看全部评分

回复 使用道具 举报
给你一个更简单的方法
  1. import java.util.*;
  2. public class Test{
  3.    public static void main(String args[]){
  4.         int old[] = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};        
  5.         ArrayList aa1=new  ArrayList();        
  6.        for(int i=0;i<old.length;i++){
  7.                if(old[i]!=0){                      
  8.                      aa1.add(old[i]);
  9.                }
  10.     }
  11.    System.out.println(aa1);
  12. }
  13. }
复制代码

输出结果[1, 3, 4, 5, 6, 6, 5, 4, 7, 6, 7, 5]
回复 使用道具 举报
楼主为什么不试试ArrayList呢,数组大小又不能改变的你这样弄好麻烦
回复 使用道具 举报
   if(old!=0){
      for(int j=0;j<old.length;j++){
          a[j]=old;
}
这思路有问题 不等于0 就把新数组全部赋值为某一个值
回复 使用道具 举报
我来补充一下吧,楼主的主函数有问题的
  1. public static void main(String args[])//楼主这里有问题
复制代码

正确的应该是这样的
  1. public static void main(String[] args)
复制代码


我想真正报找不到主方法的原因是这个引起的
回复 使用道具 举报
if(old!=0)应该是 old[i] !=0
回复 使用道具 举报
朱晓盼 发表于 2014-4-29 14:45
我来补充一下吧,楼主的主函数有问题的

正确的应该是这样的

这个不影响的 谢谢
回复 使用道具 举报
朱晓盼 发表于 2014-4-29 14:45
我来补充一下吧,楼主的主函数有问题的

正确的应该是这样的

这没问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马