创维42寸液晶电视底座:JAVA编程单词频率排序输出 望高手指教

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 15:29:32
在一个文件中(英文加标点),统计每个单词出现的频率,并排序输出.(用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

望高手指教.在此小弟先谢谢了.
上面的大哥 你能给编个出来吗? 我看看你是怎么写的

############################################################
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;
}
——————————————————————————————
1 这两个方法都没有返回类型。
2 string应该为String。
############################################################

############################################################
string ptr=0,str, url,file;
——————————————————————————————
1 String
2 Strng ptr是要初始化吗?没仔细看,不明白你的意思。要初始化的话,用ptr = ""
############################################################

后面main方法里面的错误太多了,没法改了,比如好多变量没有定义。而且看得出,你是学过c的,对java了解不多,建议你还是多看看java的语法吧,比如对字符串的操作,完全是c的风格,而不是对java String对象的操作。
还有,建议你不要一次性把程序写完再来排错,尽量写一部分就编译一下。

strcat strcmp 这些在java里都没有这样的函数。
是直接从c翻版过来的吧? 重新设计你的算法,不要试图一行一行的改。楼上的建议也很中肯。

建议你使用ECPLISE或者JBUILDER来编写JAVA程序,这样很好修改的,那里出错了,就会有提示,不会你这样很难修改