java字符串使用length得到字符串长度对吗?

Python08

java字符串使用length得到字符串长度对吗?,第1张

Java字符串使用字符串对象的length属性得到字符串的长度,例如以下代码:\x0d\x0aString str = "abc_"\x0d\x0aSystem.out.println(str.length())\x0d\x0a这两句代码将在控制台打印str字符串的长度为:4\x0d\x0a\x0d\x0aJava中除了字符串使用length属性得到字符串的长度,数组也是使用length属性得到数组的长度,例如以下代码:\x0d\x0aString [] a = new String [3]\x0d\x0aSystem.out.println(a.length)\x0d\x0a这两句代码将在控制台打印数组a的长度为:3

首先打开my 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=0i<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=0i <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=0i<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=0i <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))                      //调用方法显示其它字母类型的长度

}

}

长度不会多一位。

总结字符串有长度限制,在编译期,要求字符串常量池中的常量不能超过65535,并且在javac执行过程中控制。使用如上形式定义一个字符串的时候,当我们执行javac编译时,是会抛出异常的。

如果超出这个数量,在编译的时候编译器会报错。