概述
String 类提供了许多用来处理字符串的方法,例如,获取字符串长度、对字符串进行截取、将字符串转换为大写或小写、字符串分割等,
package com.imooc7;
import java.util.Arrays;
public class ClassString {
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义一个字符串str
String str = "学习JAVA编程";
//打印输出字符串的长度
System.out.println("字符串长度:"+ str.length());
//查找字符'编'的位置
char c = '编';
System.out.println("字符'编'的位置:" + str.indexOf(c));
//查找子字符串'JAVA'的位置
System.out.println("子字符串'JAVA'的位置:" + str.indexOf("JAVA"));
//查询子字符串'imooc'的位置,如果找不到返回-1
System.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()-1
2. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -1
3. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符
package com.imooc7;
public class ClassString1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Java文件名
String fileName = "HelloWorld.java";
// 邮箱
String email = "laurenyang@imooc.com";
// 判断.java文件名是否正确:合法的文件名应该以.java结尾
/*
参考步骤:
1、获取文件名中最后一次出现"."号的位置
2、根据"."号的位置,获取文件的后缀
3、判断"."号位置及文件后缀名
*/
//获取文件名中最后一次出现"."号的位置
int index = fileName.lastIndexOf('.');
// 获取文件的后缀
String prefix = fileName.substring(index);
// 判断必须包含"."号,且不能出现在首位,同时后缀名为"java"
if ( prefix == "java" && index != 0) {
System.out.println("Java文件名正确");
} else {
System.out.println("Java文件名无效");
}
// 判断邮箱格式是否正确:合法的邮箱名中至少要包含"@", 并且"@"是在"."之前
/*
参考步骤:
1、获取文件名中"@"符号的位置
2、获取邮箱中"."号的位置
3、判断必须包含"@"符号,且"@"必须在"."之前
*/
// 获取邮箱中"@"符号的位置
int index2 = email.indexOf('@');
// 获取邮箱中"."号的位置
int index3 = email.indexOf('.');
// 判断必须包含"@"符号,且"@"必须在"."之前
if (index2 != -1 && index3 > index2) {
System.out.println("邮箱格式正确");
} else {
System.out.println("邮箱格式无效");
}
}
}
最后一次出现的位置
lastIndexOf
package com.imooc7;
public class ClassString2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义一个字符串“学习JAVA编程”
String str = "学习JAVA编程";
//将字符串转换成小写
System.out.println("转换为小写:" + str.toLowerCase());
//获取索引位置为1的字符
System.out.println("获取索引位置为1的字符:" + str.charAt(1));
//将字符串转换为byte[],并打印输出
byte[] b = str.getBytes();
System.out.println("转换为字节数组:");
for(int i = 0; i < b.length; i++){
System.out.println(b[i] + " ");
}
System.out.println();
//和另外一个字符串“学习JAVA 编程”进行比较
String str2 = new String("学习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,如果超过就会溢出,以负数的形式显示。
package com.imooc7;
public class ClassString3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
// 出现次数
int num = 0;
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for ( int i = 0; i < s.length(); i++ )
{
// 获取每个字符,判断是否是字符a
if (s.charAt(i) == 'a' ) {
// 累加统计次数
num++;
}
}
System.out.println("字符a出现的次数:" + num);
}
}
最后
以上就是烂漫小馒头为你收集整理的Java学习笔记之String类的全部内容,希望文章能够帮你解决Java学习笔记之String类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复