当前位置: 代码迷 >> Eclipse >> 统计一句话中英文 汉语言单词的频度等,在统计英文单词频度中为什么空格一直消不掉
  详细解决方案

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

热度:18   发布时间:2016-04-23 00:55:04.0
统计一句话中英文 中文单词的频度等,在统计英文单词频度中为什么空格一直消不掉

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));
  相关解决方案