Java学习笔记之String类
16lz
2021-01-22
String 类提供了许多用来处理字符串的方法,例如,获取字符串长度、对字符串进行截取、将字符串转换为大写或小写、字符串分割等,
packagecom.imooc7;importjava.util.Arrays;publicclassClassString{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//定义一个字符串strStringstr="学习JAVA编程";//打印输出字符串的长度System.out.println("字符串长度:"+str.length());//查找字符'编'的位置charc='编';System.out.println("字符'编'的位置:"+str.indexOf(c));//查找子字符串'JAVA'的位置System.out.println("子字符串'JAVA'的位置:"+str.indexOf("JAVA"));//查询子字符串'imooc'的位置,如果找不到返回-1System.out.println("子字符串'imooc'的位置:"+str.indexOf("imooc"));//按空格把字符串拆分成一个数组,并输出数组元素String[]arr=str.split("");System.out.println("按空格拆分成数组:"+Arrays.toString(arr));System.out.println();//获取索引位置[3,7)之间的子串System.out.println("获取位置[3,7)之间的子串:"+str.substring(3,7));}}
1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-12. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -13. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符
packagecom.imooc7;publicclassClassString1{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//Java文件名StringfileName="HelloWorld.java";//邮箱Stringemail="laurenyang@imooc.com";//判断.java文件名是否正确:合法的文件名应该以.java结尾/*参考步骤:1、获取文件名中最后一次出现"."号的位置2、根据"."号的位置,获取文件的后缀3、判断"."号位置及文件后缀名*///获取文件名中最后一次出现"."号的位置intindex=fileName.lastIndexOf('.');//获取文件的后缀Stringprefix=fileName.substring(index);//判断必须包含"."号,且不能出现在首位,同时后缀名为"java"if(prefix=="java"&&index!=0){System.out.println("Java文件名正确");}else{System.out.println("Java文件名无效");}//判断邮箱格式是否正确:合法的邮箱名中至少要包含"@",并且"@"是在"."之前/*参考步骤:1、获取文件名中"@"符号的位置2、获取邮箱中"."号的位置3、判断必须包含"@"符号,且"@"必须在"."之前*///获取邮箱中"@"符号的位置intindex2=email.indexOf('@');//获取邮箱中"."号的位置intindex3=email.indexOf('.');//判断必须包含"@"符号,且"@"必须在"."之前if(index2!=-1&&index3>index2){System.out.println("邮箱格式正确");}else{System.out.println("邮箱格式无效");}}}最后一次出现的位置lastIndexOf
packagecom.imooc7;publicclassClassString2{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//定义一个字符串“学习JAVA编程”Stringstr="学习JAVA编程";//将字符串转换成小写System.out.println("转换为小写:"+str.toLowerCase());//获取索引位置为1的字符System.out.println("获取索引位置为1的字符:"+str.charAt(1));//将字符串转换为byte[],并打印输出byte[]b=str.getBytes();System.out.println("转换为字节数组:");for(inti=0;i<b.length;i++){System.out.println(b[i]+"");}System.out.println();//和另外一个字符串“学习JAVA编程”进行比较Stringstr2=newString("学习JAVA编程");System.out.println("str和str2的内存地址相同?"+(str==str2));System.out.println("str和str2的内容相同?"+str.equals(str2));}}
使用了toLowerCase()将字符串变为小写charAt()获取指定位置的字符
getBytes()将字符串转换为byte[],并打印输出
所以:
“==” 和 equals() 有什么区别呢?==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象equals(): 比较存储在两个字符串对象中的内容是否一致
字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节。所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如“学”对应 “-47 -89” ,而英文字母 “J” 对应 “74” 。同时,我们还发现汉字对应的字节值为负数,原因在于每个字节是 8 位,最大值不能超过 127,而汉字转换为字节后超过 127,如果超过就会溢出,以负数的形式显示。
packagecom.imooc7;publicclassClassString3{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubStrings="aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";//出现次数intnum=0;//循环遍历每个字符,判断是否是字符a,如果是,累加次数for(inti=0;i<s.length();i++){//获取每个字符,判断是否是字符aif(s.charAt(i)=='a'){//累加统计次数num++;}}System.out.println("字符a出现的次数:"+num);}}
packagecom.imooc7;importjava.util.Arrays;publicclassClassString{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//定义一个字符串strStringstr="学习JAVA编程";//打印输出字符串的长度System.out.println("字符串长度:"+str.length());//查找字符'编'的位置charc='编';System.out.println("字符'编'的位置:"+str.indexOf(c));//查找子字符串'JAVA'的位置System.out.println("子字符串'JAVA'的位置:"+str.indexOf("JAVA"));//查询子字符串'imooc'的位置,如果找不到返回-1System.out.println("子字符串'imooc'的位置:"+str.indexOf("imooc"));//按空格把字符串拆分成一个数组,并输出数组元素String[]arr=str.split("");System.out.println("按空格拆分成数组:"+Arrays.toString(arr));System.out.println();//获取索引位置[3,7)之间的子串System.out.println("获取位置[3,7)之间的子串:"+str.substring(3,7));}}
1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-12. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -13. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符
packagecom.imooc7;publicclassClassString1{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//Java文件名StringfileName="HelloWorld.java";//邮箱Stringemail="laurenyang@imooc.com";//判断.java文件名是否正确:合法的文件名应该以.java结尾/*参考步骤:1、获取文件名中最后一次出现"."号的位置2、根据"."号的位置,获取文件的后缀3、判断"."号位置及文件后缀名*///获取文件名中最后一次出现"."号的位置intindex=fileName.lastIndexOf('.');//获取文件的后缀Stringprefix=fileName.substring(index);//判断必须包含"."号,且不能出现在首位,同时后缀名为"java"if(prefix=="java"&&index!=0){System.out.println("Java文件名正确");}else{System.out.println("Java文件名无效");}//判断邮箱格式是否正确:合法的邮箱名中至少要包含"@",并且"@"是在"."之前/*参考步骤:1、获取文件名中"@"符号的位置2、获取邮箱中"."号的位置3、判断必须包含"@"符号,且"@"必须在"."之前*///获取邮箱中"@"符号的位置intindex2=email.indexOf('@');//获取邮箱中"."号的位置intindex3=email.indexOf('.');//判断必须包含"@"符号,且"@"必须在"."之前if(index2!=-1&&index3>index2){System.out.println("邮箱格式正确");}else{System.out.println("邮箱格式无效");}}}最后一次出现的位置lastIndexOf
packagecom.imooc7;publicclassClassString2{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//定义一个字符串“学习JAVA编程”Stringstr="学习JAVA编程";//将字符串转换成小写System.out.println("转换为小写:"+str.toLowerCase());//获取索引位置为1的字符System.out.println("获取索引位置为1的字符:"+str.charAt(1));//将字符串转换为byte[],并打印输出byte[]b=str.getBytes();System.out.println("转换为字节数组:");for(inti=0;i<b.length;i++){System.out.println(b[i]+"");}System.out.println();//和另外一个字符串“学习JAVA编程”进行比较Stringstr2=newString("学习JAVA编程");System.out.println("str和str2的内存地址相同?"+(str==str2));System.out.println("str和str2的内容相同?"+str.equals(str2));}}
使用了toLowerCase()将字符串变为小写charAt()获取指定位置的字符
getBytes()将字符串转换为byte[],并打印输出
所以:
“==” 和 equals() 有什么区别呢?==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象equals(): 比较存储在两个字符串对象中的内容是否一致
字节是计算机存储信息的基本单位,1 个字节等于 8 位, gbk 编码中 1 个汉字字符存储需要 2 个字节,1 个英文字符存储需要 1 个字节。所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如“学”对应 “-47 -89” ,而英文字母 “J” 对应 “74” 。同时,我们还发现汉字对应的字节值为负数,原因在于每个字节是 8 位,最大值不能超过 127,而汉字转换为字节后超过 127,如果超过就会溢出,以负数的形式显示。
packagecom.imooc7;publicclassClassString3{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubStrings="aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";//出现次数intnum=0;//循环遍历每个字符,判断是否是字符a,如果是,累加次数for(inti=0;i<s.length();i++){//获取每个字符,判断是否是字符aif(s.charAt(i)=='a'){//累加统计次数num++;}}System.out.println("字符a出现的次数:"+num);}}
更多相关文章
- 如何将.net DateTime作为json字符串解析为java的Date对象
- Google Play服务API(位置服务)是否需要数据计划?
- 路径提供者文档目录是一个安全的位置吗?
- 设置自定义Dialog的大小和位置
- 以编程方式将位置模式更改为高精度Android
- 【Based Android】android通过criteria选择合适的地理位置服务
- Settings点击Location(位置)后右上角的开关button不会消失
- android 检测字符串是否为合法域名
- 在android上滚动时,列表视图的位置会发生变化