编写一个GUI程序,实现单词分析功能。要求:
(1)获取用户指定的英文文本内容(可以从界面上的TextArea获得,也可以让用户从磁盘选择一个文件);
(2)分析该文本,在一个TextArea内输出所有出现过的单词,但不允许重复,每个单词后面要标记出现的次数。
如:输入 I have a Book,you have a book.输出:I(1),have(2),a(2),book(2),you(1)
因考研没时间做,谁能帮个忙 不胜感激!!
网上找了个 帮我改改也行 谢谢!
个文件中(英文加标点),统计每个单词出现的频率,并排序输出.(用JAVA编写).
我编写了个,有3个错误,望高手指教.
代码如下:
import java.awt.*;
import java.io.*;
public class wordexam
{
public swap(int x,int y) //用于整型数据的交换
{ int temp;
temp=x;
x=y;
y=temp;
}
public swap(string x,string y) //用于字符串类型的交换
{ string temp;
temp=x;
x=y;
y=temp;
}
public class word
{ //用于存储单词和它出现的频率
string word;
int cout=0;
}
public static void main()
{
int i,r,s,w,a;
char c;
string ptr=0,str, url,file;
word wor[];
System.out.println("请输入你要打开的文件的路径!\n");
//scanf("%s",&url);//请你直接把路径直接副给URL
System.out.println("请输入你要打开的文件名!\n");
//scanf("%s",&file);//请你直接把文件名直接副给FILE
try{
File file1=new File("url");
FileReader fr=new FileReader(file1);
BufferedReader inFile=new BufferedReader(fr);
if((str=infile.readline())==null) //打开文件
{
System.out.println("你输入的文件无法打开\n");
fr.close();
}
}
catch(IOException e)
{
System.out.println(e);
}
//把文件中的内容存入数组
for(i=0;(c=str[i])!="\0";i++)
if('A'<=c<='z') //判断是否为字母
ptr=strcat(ptr,c); //找出单词
else if(r==1)
{ wor[1].word=ptr;
wor[1].word+=1;
}
else if(1<r)
{ for(g=1;g<=r;g++) //判断单词是否相同
{if(strcmp(wor[g].word,ptr)==0)
{
wor[g].cout+=1;
ptr=0;
}
else
{ wor[r+1].word=ptr; //单词不相同的处理
wor[r+1].cout+=1;
}
}
}
for(s=1;s<=r;s++) //对单词出现的频率进行的排序
for(w=2;w<=r;w++)
do {
swap(wor[s].cout,wor[w].cout);
swap(wor[s].word,wor[w].word);
}
while(wor[s].cout>wor[w].cout);//升序进行排序
for(a=1;a<=r;a++) //结果的输出
{
System.out.println("单词的升序排列为");
System.out.println(wor[a].word);
System.out.println("对应单词出现的频率为");
System.out.println(wor[a].cout);
}
}
}
出现的错误如下:
wordexam.java:5: '{' expected
public class swap(int x,int y) //用于整型数据的交换
^
wordexam.java:11: '{' expected
public class swap(string x,string y) //用于字符串类型的交换
^
wordexam.java:84: '}' expected
^
3 errors