首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

统计一句话中英文 汉语单词的频度等,在统计英文单词频度中为什么空格一直消不掉

2013-09-26 
统计一句话中英文 中文单词的频度等,在统计英文单词频度中为什么空格一直消不掉public class Test {/** *

统计一句话中英文 中文单词的频度等,在统计英文单词频度中为什么空格一直消不掉

public class Test {

/**
 * @param args
 */

 
static int CalChinesenum(String s)
{ int a;
  int count=0;
for(int i=0;i<s.length();i++)
{a=s.charAt(i);
if(a>='\u4e00'&&a<='\u9fa5')
count++;
}
     System.out.println("汉字的个数为"+count) ;
     return count;
}

static int CalEnglishnum(String s)
{
char a;
int flag=0;
int count=0;
for(int i=0;i<s.length();i++)
{   
a=s.charAt(i);
if(!(a>='a'&&a<='z'||a>='A'&&a<='Z'))
flag=0;
else
     if(flag==0){
 flag=1;
 count++;
}
}
return count;
}

static void  CalEachChinesenum(String s)
{   char a;
    StringBuffer s1=new StringBuffer();
    for(int i=0;i<s.length();i++)
 {a=s.charAt(i);
 if(a>='\u4e00'&&a<='\u9fa5')
s1.append(a);
 }
    System.out.println(s1);
 for(int j=0;j<s1.length();j++)
 {   int n=1;
 for(int k=j+1;k<s1.length();)
 {   
 if(s1.charAt(j)==s1.charAt(k))
 {   s1.deleteCharAt(k);   
 n++;
 continue;
 }
 k++;
 }
     System.out.print(s1.charAt(j)+"的出现个数是");
     System.out.println(n);
 }
}

static void FindLongestWord(String s,int n)
{  
    char a;
    int flag=0;
    String[]b=new String[n];
    StringBuffer s2=new StringBuffer();
    for(int i=0;i<s.length();i++)
 {   
a=s.charAt(i);
if(!(a>='a'&&a<='z'||a>='A'&&a<='Z'))
{flag=0;
s2.append(' ');
}
else 
{
s2.append(a);
    if(flag==0)
flag=1; 
}
 }
    String tmp=s2.toString();
    b=tmp.split(" ");
    s2.delete(0,s2.length());
    int max=b[0].length();


   for(int j=1;j<b.length;j++)
   {
   if(b[j].length()>max)
   { max=b[j].length();
     s2.replace(0, max, b[j]);
   }
   }
   System.out.print("最长的英文单词是:"+s2);
   System.out.println("长度是"+max);
}

static void CalEachword(String s,int n)
{
char a;
    int flag=0;
    String[]b=new String[n];
    StringBuffer s2=new StringBuffer();
    for(int i=0;i<s.length();i++)
 {   
a=s.charAt(i);
if(!(a>='a'&&a<='z'||a>='A'&&a<='Z'))
{flag=0;
s2.append("1");
}
else 
{
s2.append(a);
    if(flag==0)
flag=1; 
}
 }
    String tmp=s2.toString();
    b=tmp.split("1");
    System.out.println("S2是"+s2);
    for(int k1=0;k1<b.length;k1++)
    System.out.println(b[k1]);
    s2.delete(0,s2.length());
    for(int j=0;j<b.length;j++)
   {int n1=1;
   for(int k=j+1;k<b.length;k++)
   if(b[k].equals(b[j]))
   {
   b[k]="1";
   n1++;
   }
    if(!b[j].contains("1"))
    { System.out.print("单词:"+b[j]);
      System.out.println("出现的次数是 "+n1);
    }
   }
    
}
public static void main(String[] args) {
// TODO Auto-generated method stub
        String s="I am a student he is a student hah    hah hahn你是个学生 学生 学生 学学学学生";
        System.out.print("输入字符数");
        System.out.println(s.length());
        System.out.println("英文单词的个数为"+CalEnglishnum(s)) ;
        CalChinesenum(s);
        CalEachChinesenum(s);
        FindLongestWord(s, CalEnglishnum(s));
        CalEachword(s, CalEnglishnum(s));    


}
}
英文单词统计后输出这个 注意最后第二行 这是为什么啊 啊啊啊 啊?
统计一句话中英文 汉语单词的频度等,在统计英文单词频度中为什么空格一直消不掉

热点排行