سوالی داشتم:آرایه ch رو از نوع string تعریف کردم و کلمات داخل یک فایل نوت پد را داخل خانه ها ی آرایهch ذخیره کردم.مثلا ch[0]=ali و ch[1]=reza و...
حالا میخوام در مورد هر کلمه ، تعداد تکرارشو بشمارم. برای اینکار یک لینک لیست یک طرفه که یک متغیر string به اسم s و یک متغیر integer به اسم val و یک اشاره گر به لینک لیست داره رو تعریف کردم تا بدین طریق تعداد تکرار کلمات رو در متغیر val و خود کلمه رو در متغیر s نگه داری کنم و قطعه کد زیر را برای شمارش نوشتم:
linklist a1 = new dochiz();
linklist a2 = new dochiz();
linklist a3 = new dochiz();
linklist a4 = new dochiz();
linklist a5 = new dochiz();
linklist a6 = new dochiz();
linklist a7 = new dochiz();
linklist a8 = new dochiz();
linklist a9 = new dochiz();
a1.next = a2;
a2.next = a3;
a3.next = a4;
a4.next = a5;
a5.next = a6;
a6.next = a7;
a7.next = a8;
a8.next = a9;
linklist t = new linklist();
int m = 0 ;
a1.s = ch[0];
m++;
for(int i = 0;i<ch.length ;i++){
t = a1;
for(int y = 0 ; y<m ; y++){
if(t.s == ch[i]){
t.val++;
break;
}
else if(t.s != ch[i]&& y==m-1){
t = t.next;
t.s = ch[i];
t.val++;
m++;
break;}
else {
t = t.next;
}
}
}
اما موقعی که میخوام تعداد تکرار یک کلمه رو چاپ کنم ، مثلا میزنم که چاپ کنه a1.val ، همه ی قسمت های قبلی برنامم تو خروجی درست چاپ میشه ولی این قسمتو ، یعنی همون چاپ a1.valرو هیچی چاپ نمی کنه و به جاش این پیغامو میده:
Exception in thread "main" java.lang.NullPointerException
at FileInput.main(FileInput.java:94)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main (AppMain.java:120)
اصلا نمی فهمم اشکال کارم کجاس و فرصت چندانی هم برای تکمیل پروژم ندارم .خواهش می کنم اگه میتونید راهنماییم کنید.
در ضمن کلاس لینک لیستمو اینجوری تعریف کردم:
public class linklist {
public int val = 0;
public String s =" ";
public linlist next;
}