目录
在Java编程中,处理字符串与基本数据类型是非常常见的需求。JDK为我们提供了多个类来应对这些需求,今天我们将详细介绍String
、StringBuffer
、StringBuilder
、包装类Integer
、BigInteger
和BigDecimal
。以下是对这些类的使用方法及相关代码示例。
一. String类
1.1 概述
String
类是用来表示字符串的类,它的底层结构是final char value[]
,因此String
对象是不可变的。这意味着每次对String
进行修改操作时,都会生成一个新的String
对象,而不是在原对象上进行修改。
1.2 String的获取方式
-
方式1:通过双引号定义
直接使用双引号定义的字符串会存储在常量池中。常量池是一块内存区域,专门用于存储常量数据。
public static void main(String[] args) { String name = "haley"; }
-
方式2:通过new关键字定义
使用
new
关键字创建的字符串存储在堆内存中。public static void main(String[] args) { String name = new String("haley"); }
1.3 常用API
-
获取字符串长度
length()
方法返回字符串的长度。public static void main(String[] args) { String name = new String("haley"); System.out.println(name.length()); // 输出:5 }
-
字符串比较
equals(Object anObject)
用于比较两个字符串是否相等,equalsIgnoreCase(String anotherString)
则忽略大小写进行比较。public static void main(String[] args) { String name = new String("haley"); System.out.println(name.equals("Haley")); // 输出:false System.out.println(name.equalsIgnoreCase("Haley")); // 输出:true }
-
转换大小写
toLowerCase()
和toUpperCase()
分别将字符串转换为小写和大写。public static void main(String[] args) { String name = new String("Haley"); System.out.println(name.toLowerCase()); // 输出:haley System.out.println(name.toUpperCase()); // 输出:HALEY }
-
字符串拼接
concat(String str)
用于将指定字符串连接到此字符串的末尾。此外,还可以使用+
号进行拼接。public static void main(String[] args) { String name = new String("hello "); System.out.println(name.concat("helay")); // 输出:hello helay System.out.println("hello " + "helay"); // 输出:hello helay }
-
查找字符或子字符串的位置
indexOf
和lastIndexOf
分别用于查找指定字符或子字符串在字符串中第一次和最后一次出现的位置。public static void main(String[] args) { String word = "hello , welcome to bailiban!"; System.out.println(word.indexOf(97)); // 输出:20 (字符'a'第一次出现的位置) System.out.println(word.indexOf("ba")); // 输出:19 (子字符串'ba'第一次出现的位置) System.out.println(word.lastIndexOf(97)); // 输出:25 (字符'a'最后一次出现的位置) System.out.println(word.lastIndexOf("ba")); // 输出:24 (子字符串'ba'最后一次出现的位置) }
-
截取子字符串
@Test public void testString01() { String word = "hello , welcome to bailiban!"; System.out.println(word.substring(8)); // 输出:welcome to bailiban! System.out.println(word.substring(8, 15)); // 输出:welcome }
-
去除两端空白字符
trim()
方法返回去掉两端空白字符的新字符串。@Test public void testString02() { String word = " hello "; System.out.println(word.trim()); // 输出:hello }
-
替换字符串
replace(CharSequence target, CharSequence replacement)
用于将字符串中的指定子字符串替换为新字符串。@Test public void testString03() { String word = "hello , welcome to bailiban!"; System.out.println(word.replace("hello", "byebye")); // 输出:byebye , welcome to bailiban! }
-
获取指定索引处的字符
charAt(int index)
用于获取指定索引位置的字符。@Test public void testString04() { String word = "hello , welcome to bailiban!"; System.out.println(word.charAt(4)); // 输出:o }
-
字符串分割
split(String regex)
根据正则表达式将字符串分割为数组。@Test public void testString05() { String word = "welcome to bailiban!"; String[] attr = word.split(" "); System.out.println(Arrays.toString(attr)); // 输出:[welcome, to, bailiban!] }
二. StringBuffer与StringBuilder
2.1 概述
StringBuffer
和StringBuilder
是可变字符序列,类似于String
,但其内容和长度可以修改。两者的主要区别在于StringBuffer
是线程安全的,而StringBuilder
不是。官方推荐使用StringBuilder
。
2.2 构造方法
-
默认构造方法
创建一个空的
StringBuilder
对象。@Test public void testStringBuilder01() { StringBuilder sb = new StringBuilder(); System.out.println(sb); // 输出:空白 }
-
指定初始字符串的构造方法
创建一个包含指定字符串的
StringBuilder
对象。@Test public void testStringBuilder01() { StringBuilder sb2 = new StringBuilder("bailiban"); System.out.println(sb2); // 输出:bailiban }
2.3 常用方法
-
append方法
append
方法用于将任意类型的数据追加到StringBuilder
中。@Test public void testStringBuilder02() { StringBuilder sb = new StringBuilder(); sb = sb.append("hello ").append(" welcome ").append(" to ").append(" bailiban "); System.out.println(sb); // 输出:hello welcome to bailiban }
-
reverse方法
reverse()
用于将字符串内容进行反转。@Test public void testStringBuilder03() { StringBuilder sb = new StringBuilder("bailiban"); System.out.println(sb.reverse()); // 输出:nailibab }
总结
本篇文章详细介绍了Java中常用的
如果你喜欢可以给我一个免费的赞和关注,这是我持续创作的动力!String
、StringBuffer
、StringBuilder
类的相关知识和实操案例。这些类为Java开发者提供了强大的工具来处理字符串和基本数据类型,希望这些示例能够帮助你更好地理解和应用它们。