String类常用方法
2017-07-30 20:42
323 查看
String类
String表示字符串常量,一旦定义无法改变,
如String s = “hello”;
s = “world”;
java中默认字符串常量为String对象
hello和world存在于方法区的常量池中,s中存储的实际上是String对象的引用的地址
以上两句改变的不是s的值,而是s指向的String对象的引用的地址
StringBuffer类
线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符
例:
String s = “你好,我好”;
StringBuffer sb = new StringBuffer(s);
sb.append(“,大家好”);
System.out.println(sb);
结果是 你好,我好,大家好
StringBuffer与StringBuilder在进行字符串拼接时,不会新创建引用变量,比String节约时间及内存
需要做大量字符串拼接使用 StringBuffer 较String效率高
在单线程时StringBuffer与StringBuilder效率相同, StringBuffer线程同步,StringBuilder线程不同步,在多线程时,StringBuilder效率高但是不安全。
String表示字符串常量,一旦定义无法改变,
如String s = “hello”;
s = “world”;
java中默认字符串常量为String对象
hello和world存在于方法区的常量池中,s中存储的实际上是String对象的引用的地址
以上两句改变的不是s的值,而是s指向的String对象的引用的地址
构造器 String(byte[] bytes) 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。 String(byte[] bytes, int offset, int length, Charset charset) 通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。 String(StringBuffer buffer) 分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列。 String(StringBuilder builder) 分配一个新的字符串,它包含字符串生成器参数中当前包含的字符序列。 方法 返回值类型 方法 char charAt(int index) / 9994 /返回指定索引处的char值,index从0开始 例:String s = "你好,很高兴ANBD见到你"; char c = s.charAt(3); System.out.println(c); //结果为 很 int compareTo(String anotherString) //按字典顺序比较两个字符串 int compareToIgnoreCase(String str) //不考虑大小写比较两个字符串 String concat(String str) //将指定字符串连接到此字符串的结尾, 例:str1.concat(str2) boolean contains(CharSequence s) //当且仅当此字符串包含指定的 char 值序列时,返回 true, 例:char[] ch = {'a','b','c','d'}; String m = String.copyValueOf(ch); 结果 m="abcd" boolean startsWith(String prefix) //测试此字符串是否以指定的前缀开始 boolean endswith(String suffix) //测试此字符串是否以指定的后缀结束 例:String s6 = "helloWorld.java"; System.out.println(s6.endsWith(".java")); 结果:true boolean equals(Object anObject) //将此字符串与指定的对象比较 equals常用于字符串或是对象引用所指向的值的比较 boolean equalsIgnoreCase(String anotherString) //将此 String 与另一个 String 比较,不考虑大小写 int hashCode() //返回此字符串的哈希码 int indexOf(String str) //返回指定字符串在该字符串中第一次出现的位置索引 例:String s1 = "你好,很高兴ANBD见到你好"; System.out.println(s1.indexOf("你好")); 结果: 0 int lastIndexOf(char ch) //返回指定字符在该字符串中最后一次出现的索引 int lastIndexOf(String str) //返回指定字符串在该字符串中最后一次出现的索引 byte[] getBytes() //将该字符串编码为byte序列,并存储到新的byte数组中 int length() //返回此字符串的长度 boolean isEmpty() //当且仅当length()为0时返回true boolean matches(String regex) //判断此字符串是否匹配给定的正则表达式 String replace(char oldChar,char newChar) //返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的 char[] toCharArray() //将该字符串转换为一个新的字符数组 String toLowerCase() //将该字符串中的所有大写都转换成小写 String toString() //返回该字符串本身 String trim() //返回该字符串副本,去除开头的空白和字符串后面的空白 String substring(int beginIndex) //从beginIndex位置开始截取字符串 String[] split(String regex) //根据给定的正则表达式来拆分此字符串,获得一个字符串数组 static String valueOf(基本数据类型) //返回该参数的字符串形式, 例:String.valueOf(20.5),结果为20.5(String) 参数中的"基本数据类型"指的是byte,short,int,long,float, double,boolean,char,包括字 符数组char[]以及Object对象 其中byte,short会被默认为int型,需要时可以强转 该方法常和BigDecimal一起使用解决double类型计算数据精度丢失问题,保证数据的精确性
StringBuffer类
线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符
例:
String s = “你好,我好”;
StringBuffer sb = new StringBuffer(s);
sb.append(“,大家好”);
System.out.println(sb);
结果是 你好,我好,大家好
StringBuffer与StringBuilder在进行字符串拼接时,不会新创建引用变量,比String节约时间及内存
需要做大量字符串拼接使用 StringBuffer 较String效率高
在单线程时StringBuffer与StringBuilder效率相同, StringBuffer线程同步,StringBuilder线程不同步,在多线程时,StringBuilder效率高但是不安全。
相关文章推荐
- JAVA——String类的常用方法
- JAVA String类的常用方法总结
- String类的常用方法(轻松玩转String)
- Java中String类的特点以及常用的方法
- String类常用方法
- String类常用方法
- String类常用属性方法小结
- Java-String类的常用方法总结
- Java-String类的常用方法总结
- String类常用方法源码分析
- String类常用方法
- String类的常用方法总结
- 字符串String类、字符串缓冲区StringBuffer和StringBuilder、及常用方法
- java中String类常用方法的使用与实例
- Java基础:String类之常用方法及使用注意事项
- Object类和String类中常用的方法
- java中String类和常用方法的使用
- 54-55_数组_String类的常用方法_JDK源码分析_内存分析
- Java String类的常用方法(字符串分割)
- String类对象的常用操作及方法