首先打开eclipse
新建一个java项目,名字随意起
名字起好后,点击完成
右键点击项目名称,新建,类
类的名字叫TextLength
包的名字叫 com.zf.s2
点击完成
首先要判断是否是汉字
public static int getChineseCount(String s) throws Exception{//获得汉字的长度
char c;
int chineseCount=0;
if(!"".equals("")){//判断是否为空
s=new String(s.getBytes(),"GBK"); //进行统一编码
}
for(int i=0;i c=s.charAt(i); //获得字符串中的每个字符 if(isChineseChar(c)){//调用方法进行判断是否是汉字 chineseCount++; //等同于chineseCount=chineseCount+1 } } return chineseCount; //返回汉字个数 }
获得字母、数字、空格的个数
public static String getStringInfo(String s){
char ch;
int character=0,blank=0,number=0;
for(int i=0;i { ch=s.charAt(i); if((ch>='a'&&ch <='z')||(ch>='A'&&ch <='Z'))//统计字母 character++; //等同于character=character+1 else if(ch==' ') //统计空格 blank++; //等同于blank=blank+1 else if(ch>='0'&& ch <='9') //统计数字 number++; //等同于number=number+1; }
完整代码
package com.zf.s2;//创建一个包
public class TextLength {//描述字符串长度的类
public static boolean isChineseChar(char c) throws Exception{//判断是否是一个汉字
return String.valueOf(c).getBytes("GBK").length>1;//汉字的字节数大于1
}
public static int getChineseCount(String s) throws Exception{//获得汉字的长度
char c;
int chineseCount=0;
if(!"".equals("")){//判断是否为空
s=new String(s.getBytes(),"GBK"); //进行统一编码
}
for(int i=0;i c=s.charAt(i); //获得字符串中的每个字符 if(isChineseChar(c)){//调用方法进行判断是否是汉字 chineseCount++; //等同于chineseCount=chineseCount+1 } } return chineseCount; //返回汉字个数 } public static String getStringInfo(String s){//获得字母、数字、空格的个数 char ch; int character=0,blank=0,number=0; for(int i=0;i { ch=s.charAt(i); if((ch>='a'&&ch <='z')||(ch>='A'&&ch <='Z'))//统计字母 character++; //等同于character=character+1 else if(ch==' ') //统计空格 blank++; //等同于blank=blank+1 else if(ch>='0'&& ch <='9') //统计数字 number++; //等同于number=number+1; } return "字符串中共有"+character+"个字母,"+blank+"个空格,"+number+"个数字"; } public static void main(String []args) throws Exception {//java程序的主入口方法 String s="hello world 世界你好!!123*"; System.out.println("字符串的总长度:"+s.length());//显示字符串长度 System.out.println("字符串中汉字长度:"+getChineseCount(s)); //调用方法显示汉字长度 System.out.println(getStringInfo(s)); //调用方法显示其它字母类型的长度 } }
通过String自带的length()方法获取字符串长度。
String a="abcdefg";//定义一个字符串
int len = a.length();//通过length获取字符串长度,这里等于7
length()该方法返回此字符串的长度。长度是等于Unicode代码单元中的字符串的数目。
字符串是length().数组才是字符串的length属性.
这个东西有个问题.无论是汉字,符号,还是字母都会输出长度.
我这个不仅可以统计汉字数量,而且可以提取出汉字.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
int count = 0;
String regex = "[\u4e00-\u9fa5]";
String str = "今天阳光明媚zh2345678{不是吗},是的.";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
System.out.print("提取出来的中文有:");
while (m.find()) {
count++;
System.out.print(m.group() + " ");
}
System.out.println();
System.out.println("汉字出现的频率:" + count);
}
}
例如:
<%
String myString="今天阳光明媚";
int myStringLength=myString.length();
out.print(myStringlength);
%>
肯定会输出 6的
单纯用.length方法不行!那样你输入“今天yangguang明媚”,统计的是长度是11。
我以前用JS做个类似的!
JS的,你试试吧!因为ASCII值是0~254之间的,那么除去这个其他的都算成中文,但是也并不是!这只是个思路!呵呵