问题描述
txt读取每一行文字存为一个stringVector<String>result=null;publicdelStopWord(){Stringline=null;try{BufferedReaderreader=newBufferedReader(newFileReader("data\stopList.txt"));while((line=reader.readLine())!=null){result.add(line);}}catch(IOExceptione){e.printStackTrace();}}publicstaticbooleanIsStopWord(Stringword){Stringsresult=result.toString();//出错静态变量不能从非静态变量中读取。String[]stopWordsList=sresult.split("");for(inti=0;i<stopWordsList.length;i++){if(word.equalsIgnoreCase(stopWordsList[i]))returntrue;}returnfalse;}publicString[]DropStopWords(String[]oldWords){Vector<String>v1=newVector<String>();for(inti=0;i<oldWords.length;++i){if(IsStopWord(oldWords[i])==false){v1.add(oldWords[i]);}}String[]newWords=newString[v1.size()];v1.toArray(newWords);returnnewWords;}
解决方案
解决方案二:
publicstaticbooleanIsStopWord(Stringword)你这是静态的方法
解决方案三:
可以用split搞定
解决方案四:
这是我进行必要的修改后,得出的结果,肯定能用!importjava.io.*;importjava.util.Vector;publicclasstxt_string{staticVector<String>result=null;publictxt_string(){result=newVector<String>();}publicvoiddelStopWord(){Stringline=null;try{BufferedReaderreader=newBufferedReader(newFileReader("d:/stopList.txt"));while((line=reader.readLine())!=null){result.add(line);}}catch(IOExceptione){e.printStackTrace();}}publicstaticbooleanIsStopWord(Stringword){Stringsresult=result.toString();//出错静态变量不能从非静态变量中读取。//String[]stopWordsList=sresult.split("");你这个split用的有问题,而且Vector的toString()未必满足我们的要求,所以还是自己动手//应该这样:String[]stopWordsList=newString[result.size()];for(inti=0;i<result.size();i++){stopWordsList[i]=result.get(i);}for(inti=0;i<stopWordsList.length;i++){if(word.equalsIgnoreCase(stopWordsList[i]))returntrue;}returnfalse;}publicString[]DropStopWords(String[]oldWords){Vector<String>v1=newVector<String>();for(inti=0;i<oldWords.length;++i){if(IsStopWord(oldWords[i])==false){v1.add(oldWords[i]);}}String[]newWords=newString[v1.size()];v1.toArray(newWords);returnnewWords;}publicstaticvoidmain(Stringarg[]){txt_stringculItem=newtxt_string();culItem.delStopWord();System.out.print(IsStopWord("w"));}}
解决方案五:
静态方法不能调用非静态属性或者(非静态方法)。