Java基础-String类入门

String类介绍

        String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。

String类的声明方式

/*
    方式一
*/
String str1 = "第一种方式";

/*
使用该方式创建str1时,先从常量池查看是否有"第一种方式"数据空间,如果有,那么Str1
直接指向该空间。如果没有,那么就会在常量池新建一个空间为"第一种方式",然后再指向该
空间,str1最终指向的是常量池的空间地址
*/
/*
    方式二
*/
String str2 = new String("第二种方式");

/*
先在堆中创建一个空间,里面维护了一个vcalue属性,指向常量池中的"第二种方式"空间,如果常量池
中没有此空间,那么会先创建后指向,同上。
*/

String类的特点

1.String是一个final类,代表不可变的字符序列

2.字符串是不可改变的,一个字符串对象一旦被分配,其内容是不可改变的

String常用的方法

(1)equals  比较内容是否相同,区分大小写

String str1 = "hello";
String str2 = "Hello";
System.out.println(str1.equals(str2));

/*
运行结果为: true
*/

(2)equalsIgnoreCase 忽略大小写的判断内容是否相等

String username = "johN";
if ("john".equalsIgnoreCase(username)) {
    System.out.println("Success!");
} else {
    System.out.println("Failure!");
}

/*
运行结果为: Success!
*/

(3)length 获取字符的个数,字符串的长度

System.out.println("实习工程师".length());

/*
运行结果为: 5
*/

(4)indexOf 获取字符在字符串对象中第一次出现的索引,索引从 0 开始,如果找不到,返回-1

String s1 = "wer@terwe@g";
int index = s1.indexOf('@');
System.out.println(index);// 3
System.out.println("weIndex=" + s1.indexOf("we"));

/*
运行结果为: 0
*/

(5)lastIndexOf 获取字符在字符串中最后一次出现的索引,索引从 0 开始,如果找不到,返回-1

s1 = "wer@terwe@g@";
index = s1.lastIndexOf('@');
System.out.println(index);//11
System.out.println("ter 的位置=" + s1.lastIndexOf("ter"));

/*
运行结果为: 4
*/

(6)substring 截取指定范围的子串

String name = "hello,张三";
//下面 name.substring(6) 从索引 6 开始截取后面所有的内容
System.out.println(name.substring(6));//截取后面的字符
//name.substring(0,5)表示从索引 0 开始截取,截取到索引 5-1=4 位置
System.out.println(name.substring(2,5));//llo

(7)toUpperCase 转换成大写

String s = "heLLo";
System.out.println(s.toUpperCase());//HELLO

(8)toLowerCase 转换成小写

System.out.println(s.toLowerCase());//hello

(9)concat 拼接字符串

String s1 = "宝玉";
s1 = s1.concat("林黛玉").concat("薛宝钗").concat("together");
System.out.println(s1);//宝玉林黛玉薛宝钗 together

(10)replace 替换字符串中的字符

s1 = "宝玉 and 林黛玉 林黛玉 林黛玉";
// 在 s1 中,将 所有的 林黛玉 替换成薛宝钗
// 解读: s1.replace() 方法执行后,返回的结果才是替换过的. 
// 注意对 s1 没有任何影响
String s11 = s1.replace("宝玉", "jack");
System.out.println(s1);//宝玉 and 林黛玉 林黛玉 林黛玉
System.out.println(s11);//jack and 林黛玉 林黛玉 林黛玉

(11)split 分割字符串

String poem = "锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦";
// 解读:
// 1. 以 , 为标准对 poem 进行分割 , 返回一个数组
// 2. 在对字符串进行分割时,如果有特殊字符,需要加入 转义符 \
String[] split = poem.split(",");
poem = "E:\\aaa\\bbb";
split = poem.split("\\\\");
System.out.println("==分割后内容===");
for (int i = 0; i < split.length; i++) {
    System.out.println(split[i]);
}

//输出后的内容:
/*
锄禾日当午
汗滴禾下土
谁知盘中餐
粒粒皆辛苦
*/

(12)toCharArray 转换成字符数组

s = "happy";
char[] chs = s.toCharArray();
for (int i = 0; i < chs.length; i++) {
    System.out.println(chs[i]);
}

//输出后的内容:
/*
h
a
p
p
y
*/

(13)compareTo 比较两个字符串的大小,如果前者大,则返回正数,后者大,则返回负数,如果相等,返回 0

// 解读
// (1) 如果长度相同,并且每个字符也相同,就返回 0
// (2) 如果长度相同或者不相同,但是在进行比较时,可以区分大小
// 就返回 if (c1 != c2) {
//             return c1 - c2;
//         }
// (3) 如果前面的部分都相同,就返回 str1.len - str2.len
String a = "jcck";// len = 3
String b = "jack";// len = 4
System.out.println(a.compareTo(b)); // 返回值是 'c' - 'a' = 2 的值

(14)format 拼接字符串

String name = "john";
int age = 10;
double score = 56.857;
char gender = '男';
//将所有的信息都拼接在一个字符串. 
String info ="我的姓名是" + name + ",年龄是" + age + ",成绩是" + score + 
",性别是" + gender + "。希望大家喜欢我!";
System.out.println(info);
//输出结果为:
//我的姓名是john,年龄是10,成绩是56.857,性别是男。希望大家喜欢我!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值