统计一句话中英文 中文单词的频度等,在统计英文单词频度中为什么空格一直消不掉
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));
}
}
英文单词统计后输出这个 注意最后第二行 这是为什么啊 啊啊啊 啊?