java中如何统计一个字符串的长度
不要求象word统计那样复杂。 展开
首先打开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<s.length();i++){//for循环
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 <s.length();i++) //for循环
{
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<s.length();i++){//for循环
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 <s.length();i++) //for循环
{
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代码单元中的字符串的数目。
这个东西有个问题.无论是汉字,符号,还是字母都会输出长度.
我这个不仅可以统计汉字数量,而且可以提取出汉字.
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的
我以前用JS做个类似的!
<script language="javascript">
function checkNumber()
{
var str=document.getElementById('cont').value;
var cnum=0;
for(var i=0;i<str.length;i++){
var st=str.charCodeAt(i);
if(st>254){
cnum++;
}
}
alert("中文个数为:"+cnum);
}
</script>
JS的,你试试吧!因为ASCII值是0~254之间的,那么除去这个其他的都算成中文,但是也并不是!这只是个思路!呵呵