填充后,数组变空

时间:2013-05-13 14:29:23

标签: java static public

我的代码中有一个可怕的问题。我用这段代码来比较阿拉伯字符,比较中的每件事都很好。我还使用一个名为数字的数组来存储一些统计数字,每一件事情都很好。但问题是,当我使用数组编号从中获取最大值时,我发现数组条目为零,而不是它实际填充的数字。除了我把代码发送给朋友,他告诉我调试器永远不会到达数组并填充零,但在我的Eclipse中,每件事情都很好,除非我在代码中再次重用数组,我发现它为零。我的错误是什么?请有人帮助我。

我不知道如何发送我的代码。

public static float[][] numbers;
public static float myarray[][];
public static float sum = (float) 0.0;
public static float max=(float) 0.0;
public static int topicnumber = 0;

public static void resultTesting(String filename) throws IOException
    {
        File modal=new File("C:\\Users\\Monjed\\workspace\\Classification_Docc\\model-00010.twords");
        Scanner fromFileName=new Scanner(new File(filename));
        Scanner fromModel=new Scanner(modal);
        numbers=new float[3000][6];
        myarray=new float[3000][6];



     for(int c=0;c<6;c++)
     {
         for(int r=0;r<3000;r++)
         {
             numbers[r][c]=0;
             myarray[r][c]=0;
         }

     }



        int i=0;
        int a=0;

        String word="";



        if(fromModel.hasNext())
        {

            word=fromFileName.next();
        }

        while(fromFileName.hasNext())
        {
            i=0;
            while(fromModel.hasNext())
            {       
                a=0;
                String myWord=fromModel.nextLine();
                while(!myWord.contains("Top"))
                {
                    myWord=myWord.replaceAll("\\\\$|\\\\^", "");

                    String[] split=myWord.split("   ");

                    byte s[]=split[0].getBytes();
                    split[0]=new String(s, "UTF-8");


                    split[0]=myTrim(split[0]);
                    split[0]=split[0].trim();

                    word=myTrim(word);
                    word=word.trim();

                    word=word.replaceAll("$\\\\|^\\\\", "");
                    split[0]=split[0].replaceAll("$\\\\|^\\\\", "");
                    word=word.replace("؟", "");
                    word=word.replace("،", "");
                    word=word.replace("-", "");
                    word=word.replace(".", "");


                    split[0]=split[0].replace("؟", "");
                    split[0]=split[0].replace("،", "");
                    split[0]=split[0].replace("-", "");
                    split[0]=split[0].replace(".", "");

                if(split[0].equals(word))
                {

                    numbers[a][i]=Float.parseFloat(split[1].toString());
                    fillthearray(a, i,numbers[a][i] );
                    a++;

                }



                if(fromModel.hasNext())
                {


                     myWord=fromModel.nextLine();
                }
                else
                break;


            }


            if(i<5)
            i++;
            else
                break;
            }
            if(fromFileName.hasNext())
            {

                fromModel=new Scanner(modal);
                word=fromFileName.next();
                i=0;
                a=0;
            }
            else
                break;


        }
        JOptionPane.showMessageDialog(null,printarrayresult(myarray)," النتيجه هي ",JOptionPane.YES_OPTION);  



    }

    private static String myTrim(String mystring)
    {
        char x[]=mystring.toCharArray();
        char y[]=new char[x.length];
        String str="";
        for(int i=0;i<x.length;i++)
        {
            byte a=(byte)x[i];

            if(a<0x0600&&a>0x06ff)
            {
                continue;

            }
            else
                y[i]=x[i];


        }
        for(int j=0;j<y.length;j++)
        str+=y[j];
        return str;
    }
    public static void fillthearray(int x,int y,float i)
    {
        myarray[x][y]=i;
    //  System.out.println(myarray[x][y]);


    }
    private static  String printarrayresult(float data[][])
    {
        for(int i=0;i<6;i++)
            for(int j=0;j<3000;j++)
            {
                data[j][i]=myarray[j][i];
                System.out.println(myarray[j][i]);
            }
        for(int y=0;y<1;y++)
        {
            for(int w=0;w<3000;w++)
            {
                //System.out.println(myarray[w][y]);
                sum+=myarray[w][y]; 

            }



        }
        max=sum;

        for(int x=0;x<6;x++)
        {
            sum=0;
            int y=0;
            for( y=0;y<3000;y++)
            {
                sum+=myarray[y][x];
                //System.out.println(sum+"  "+max);
            }
            //System.out.println(myarray[y-1][x]);

            if(sum>max)
            {
                //System.out.println(sum);
                max=sum;
                topicnumber++;
            }
        }
        if(topicnumber==0)
        {
            return "اعمال";
        }
        if(topicnumber==1)
            return "اقتصاد";
        if(topicnumber==2)
        {
            return "رياضه";
        }
        if(topicnumber==3)
        {
            return "سياسه";
        }



        return "علوم";

    }

0 个答案:

没有答案