Java常用类——String类

一、简要介绍

  • 字符串是常量,创建之后不可改变
  • 字符串字面值存储在字符串池中,可以共享
  • String s = "Hello";产生一个对象,字符串池中存储
  • String s = new String("Hello"); 产生两个对象,堆、池各一个

二、常用方法

// 1. length(); 返回字符串长度
// 2. charAt(int index); 返回某个位置的字符
// 3. contains(String str); 判断是否包含某个子字符串

String content = "java是世界上最好的编程语言";
sout(content.length()); // 15
sout(content.charAt(content.length() - 1)); // 言(因为下角标是从0开始,所以返回第n个字符,下角标为 n-1 )
sout(content.contains("java")); // true

// 4. toCharArray(); 返回字符串对应数组 
// 5. indexOf(); 返回子字符串首次出现的位置
// 6. lastIndexOf(); 返回字符串最后一次出现的位置

sout(Arrays.toString(content.toCharArray()));
sout(content.indexOf"java")); // 0

String content = "java是世界上最好的java编程语言,java真香";
sout(content.indexOf("java", 4)); // 从索引4开始找 返回11
sout(content.lastIndexOf("java")); // 20

// 7. trim(); //去掉字符串前后空格
// 8. toUpperCase(); toLowerCase(); 转换大小写
// 9. endsWith(str); startsWith(str);  判断是否以str 结尾、开头

String ct = "  hello world  "; //前后包含空格
sout(ct.trim()); // "hello world" //前后空格被去掉
sout(ct.toUpperCase()); // HELLO WORLD
sout(ct.toLowerCase()); // hello world

String ct = "hello world"; 
sout(ct.endsWith("world")); // true
sout(ct.startsWith("hello")) // true
  
// 10. replace(char old, char new); 用新的字符或字符串替换旧的字符或字符串
// 11. split(); 对字符串拆分

String content = "java是世界上最好的java编程语言,java真香";
sout(content.replace("java", "php")); // php是世界上最好的php编程语言,php真香

String say = "java is the best language";
String[] arr = say.split(" "); // 用空格对字符串进行拆分,每遇到一个空格,拆分一次
sout(arr.length); // 5
for(String string : arr){
  sout(string);
}
// 打印出 
//java
//is
//the 
//best
//language

String say = "java is the best language,java xiang";
//遇到空格或逗号时,进行拆分
//中括号里包含 空格和逗号,表示遇到空格或逗号时,进行拆分
//中括号后面的加号,意思是遇到的空格或逗号如果是连续的,比如说多个空格,则将多个空格视为一个空格,正常拆分
String[] arr = say.split("[ ,]+");
sout(arr.length); // 7
for(String string : arr){
  sout(string);
}
// 打印出 
//java
//is
//the 
//best
//language
//java
//xiang


// 补充两个equals、compareTo();比较大小
String s1 = "hello";
String s2 = "HELLO";
sout(s1.equals(s2));//false
sout(s1.equalsIgnoreCase(s2));// 忽略大小写比较,true

// compareTo(); 
//两字符不同时比较字符字典序的ascii码
String s3 = "abc"; //a的ascii码:97
String s4 = "xyz"; //x的ascii码:120
sout(s3.compareTo(s4));//返回 a-x 的ascii码差值,-23

// 字符相同时比较长度,返回差值
String s5 = "abc"; 
String s6 = "abcxyz"; 
sout(s5.compareTo(s6));//返回 s5-s6 长度差,-3

三、可变字符串

  • StringBuffer : 可变长字符串,运行效率慢、线程安全
  • StringBuilder : 可边长字符串、运行快、线程不安全

效率都比String高且节省内存

psvm(String[] args){
  // StringBuffer 和 StringBuilder 用法一致
  StringBuffer sb = new StringBuffer();
  
  // 1. append(); 追加
  sb.append("java no1");
  sout(sb.toString()); //java no1
  
  // 2. insert(); 添加、插入
  sb.insert(0, "我在最前面");//0 表示在第一个位置插入
  sout(sb.toString());//我在最前面java no1
  
  // 3.replace(); 替换,可以指定位置  replace(start,end,str); 
  sb.replace(0, 5, "hello"); // 0表示开始位置,5是结束位置,左闭右开,包含0,不包含5
  sout(sb.toString());//hellojava no1
  
  // 4. delete(); 删除 delete(start,end);
  sb.delete(0, 5); // 左闭右开
  sout(sb.toString());//java no1
  
  // 5. 清空
  sb.delete(0, sb.length());
  sout(sb.length()); //0
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值