Java基础
String类
1.String 字符串常量
1 | public final class String |
1 | String str = "hongjun500"; |
创建了一个字符串,值为hongjun500;length()方法可以得到字符串的长度,返回int类型;””的长度为0,” “长度为1(空格)
1 | str.charAt(int index); // 得到指定位置的字符,index索引值从0开始 |
1 | str.indexOf('n'); // 得到字符‘n’第一次出现的位置(索引值); |
字符串的截取
1 | str.substring(1); 获取从索引值1开始到结尾的字符串; |
字符串替换
1 | str.replace("5","6"); |
字符串分割
1 | str.split(","); 将字符串以“,”分割成String[]; |
字符串大小写转换
toLowerCase()将字符串转换为小写toUpperCase()将字符串转换为大写
字符串比较
1 | str.equals("h"); 比较字符串内容是否相同,得到一个boolean类型的值;运算符‘==’则是比较地址 |
2.StringBuilder 类
StringBuilder 字符串变量(线程不安全对字符串频繁的进行操作时需要用到)
1 | StringBuilder strBuilder = StringBuilder();初始为16个字符 |
字符串变量的拼接、容量、替换
1 | strBuilder.apped("hongjun"); |
截取和String的一样
字符串反转
1 | strBuilder.reverse(); |
3.StringBuff 类
StringBuilder 和 StringBuilder 一样都是字符串变量,方法大体上都是相同的
1 | public final class StringBuilder |
1 | public final class StringBuffer |
如上这两个都是继承了相同的抽象类和并且实现了相同的接口,但是需要注意它们各自重写父类的方法是不一样的
例如常用apped()方法:
StringBuilder:
1 |
|
这是直接调用了父类的append方法
StringBuffer:
1 |
|
有两处不一样,一是加了和线程有关的 synchronized 关键字,二是有一个字符数组的缓存,每次修改之后就把之前的清掉
通过以上可以明白为啥总是会有说(用String操作少量的数据; StringBuilder操作大量数据;StringBuffer操作多线程下的大量数据)。
关于多线程的一些东西,鉴于工作中还没有一些实际运用的场景(多线程举足轻重),仅仅是看文章了解知其然而不知其所以然,此处暂时不做阐述。。。