我的代码中有一个可怕的问题。我用这段代码来比较阿拉伯字符,比较中的每件事都很好。我还使用一个名为数字的数组来存储一些统计数字,每一件事情都很好。但问题是,当我使用数组编号从中获取最大值时,我发现数组条目为零,而不是它实际填充的数字。除了我把代码发送给朋友,他告诉我调试器永远不会到达数组并填充零,但在我的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 "علوم";
}