首页 > 技术文章 > Java中的String类、StringBuffer笔记

bianchengxiaolong 2020-07-20 17:48 原文

2.String类

2.1常用的String方法

方法名 描述
str.length() Java字符串就是Unicode字符序列
str.toUpperCase() 大写
str.toLowerCase() 小写
str.indexOf("学") 获取指定字符的索引位置
str.charAt(5) 获取单个字符
str.substring(5) 截取子串
str.substring(5, 7) 截取子串
str2.trim() 去两头空
str3.replace("j", "J"); 将j替换成J并返回
str4.split("#") 按"#"分割为字符串数组
str4.contains("struts2") 字符串包含
str4.concat("#spring").concat("#ibatis") 连字符
str4.isEmpty() 判断是否为 空字符串
replaceAll(String regex, String replacement) 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

2.2、关于String类的 ==和equals的辨析

String str1 ="我爱中国china";
String str2 ="我爱中国china ";
String str3 ="我爱中国CHINA";
String str4 =new String("我爱中国china");
String str5 =new String("我爱中国china");

System.out.println(str1==str2);//true
System.out.println(str4==str5);//false
System.out.println(str1==str4);//false

System.out.println("----------------");
System.out.println(str1.equals(str2));//内容true
System.out.println(str4.equals(str5));//内容true
System.out.println(str1.equls(str4));//内容true
System.out.println(str1.equals(str3));
System.out.println(str1.equalsIgnoreCase(str3));

System.out.println(str1.compareTo(str2));//0
System.out.println(str1.compareTo(str3));//32
System.out.println(str3.compareTo(str1));//-32
System.out.println(str1.compareToIgnoreCase(str3));//0

2.3StringBuffer

  • StringBuffer 可变字符序列 buffer 缓冲区
    • 硬盘比内存慢 ,在内存中提供一块buffer,将硬盘中的数据先读取到内存的buffer中,内存需要写数据到硬盘中时,先写到buffer中,然后一次性写到硬盘中内存比CPU慢,可以在cpu中提供一块buffer(cache),原理同内存中的buffer,解决内存和CPU速度不匹配的问题

2.4.StringBuffer的常用操作

  • 1.添加
buffer.append(" JavaSE");
buffer.insert(index, "# Servlet");
  • 2.删除
buffer.deleteCharAt(27);
buffer.delete(27, 35);
  • 3.更新/替换
buffer.replace(0, 4, "JAVA");
  • 4.显示
buffer.toString()
  • 5.其他
buffer.reverse();
  • 注意:所有的操作都是在StringBuffer上面直接进行操作,而不是另外开辟空间,所以称为可变字符序列

2.5.StringBuilder 和StringBuffer

可变字符串:

StringBuilder:

  • 1.线程不安全,适合在单线程的环境

  • 2.效率高

StringBuffer : 可变

  • 1.线程安全,适合在多线程的环境

  • 2.相对于StringBuilder效率低

推荐阅读