java中如何统计一个字符串的长度

在jsp页面接受输入的内容,统计一共有多少个中文字,例如:输入"今天阳光明媚",输出6.不要求象word统计那样复杂。... 在jsp页面接受输入的内容,统计一共有多少个中文字,例如:输入"今天阳光明媚", 输出6 .
不要求象word统计那样复杂。
展开
 我来答
佩佩做手工
高粉答主

2018-05-03 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:370
采纳率:90%
帮助的人:11.1万
展开全部
  • 首先打开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));                       //调用方法显示其它字母类型的长度

    }

    }

woshidaniel
2015-09-11 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:953万
展开全部

通过String自带的length()方法获取字符串长度。

String a="abcdefg";//定义一个字符串
int len = a.length();//通过length获取字符串长度,这里等于7

length()该方法返回此字符串的长度。长度是等于Unicode代码单元中的字符串的数目。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AiDirac
2009-06-15 · TA获得超过6784个赞
知道大有可为答主
回答量:8833
采纳率:33%
帮助的人:1亿
展开全部
字符串是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);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuygsuiyuan
2009-06-15 · TA获得超过795个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:168万
展开全部
例如:
<%
String myString="今天阳光明媚";
int myStringLength=myString.length();
out.print(myStringlength);
%>

肯定会输出 6的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6c01eed6c8
2009-06-15 · TA获得超过137个赞
知道答主
回答量:82
采纳率:0%
帮助的人:55.4万
展开全部
单纯用.length方法不行!那样你输入“今天yangguang明媚”,统计的是长度是11。
我以前用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之间的,那么除去这个其他的都算成中文,但是也并不是!这只是个思路!呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式