文本文件中的重複項不應該添加到列表中,但該程序正在輸出列表中的每個單詞不知道爲什麼hasElement方法不工作。我需要創建一個應該被稱爲MTFencoder.java的程序對象,它應該接受一個文本文件的名字作爲命令行參數,這樣如果存在一個叫做story.txt的文本文件,那麼你的程序可以用以下命令調用:不能理解爲什麼arraylist hasElement方法在java中不工作
的java MTFencoder的test.txt
應該產生用於輸入文件的每個字一行輸出,使得當一個字第一次遇到然後輸出爲:
0字
,並且如果這個詞已經在此之前的輸出是單個整數,指定的根據最近使用的(MRU順序)排序已知單詞列表,詞的索引已經遇到。
import java.util.*;
import java.io.*;
class extmycase
{
public static void main(String [] args)
{
Scanner scan=null;
Scanner scan1=null;
wordlist word=null;
String s;
int count=0;
try
{
scan=new Scanner(new File(args[0]));
scan1=new Scanner(new File(args[0]));
while(scan1.hasNext())
{
scan1.next();
count++;
}
System.out.println("No.of words : " + count);
word = new wordlist(count);
while(scan.hasNext())
{
s=scan.next();
if(word.hasElement(s)==true)
{
System.out.println("has element");
}
else
{
word.add(s);
}
}
word.showlist();
}
catch(Exception e)
{
System.err.println("unable to read from file");
}
finally
{
// Close the stream
if(scan != null)
{
scan.close();
}
if(scan1 !=null)
{
scan1.close();
}
}
}
}
詞表程序
import java.lang.*;
import java.util.*;
public class wordlist
{
public String data [];
private int count;
private int MAX;
public wordlist(int n)
{
MAX = n;
data = new String[MAX];
count = 0;
}
// Adds x to the set if it is not already there
public void add(String x)
{
if (count<MAX)
{
data[count++] = x;
}
}
// Removes x from set by replacing with last item and reducing size
public void replace(String x)
{
for(int i=0;i<count;i++)
{
if(data[i]==x)
{
data[count]=data[i];
for(int j=i;j<count;j++)
data[j]=data[j+1];
}
}
}
// Checks if value x is a member of the set
public boolean hasElement(String x)
{
for(int i=0;i<=count;i++)
{
if(data[i].equals(x))
{
return true;
}
}
return false;
}
public int findIndex(String x)
{
for(int i=0;i<=count;i++)
{
if(data[i].equals(x))
{
return i;
}
}
return 0;
}
public void showlist()
{
int l=0;
for(int i=0;i<count;i++)
{
System.out.println(data[i]);
l++;
}
System.out.println(l);
}
}
你能否修正你的代碼的格式,以便正確縮進。 – 2013-03-27 00:30:26
scan&scan1正在讀取相同的文件? args [0] - 所以每次都必須返回TRUE。 – 2013-03-27 00:32:30
if(hasElement(x)== true);這條線的意圖是什麼?這似乎毫無意義。 – 2013-03-27 00:54:20