美术网站建设方案,企业管理咨询经营范围,东莞正规网页设计培训学费,模特公司网站模板Java String 类常用方法详解
在 Java 编程里#xff0c;字符串操作十分常见#xff0c;而 String 类作为 Java 标准库的核心类#xff0c;用于表示不可变的字符序列。任何对字符串的修改操作都会返回一个新的字符串对象#xff0c;不会改变原始字符串。本文将详细介绍 Str…Java String 类常用方法详解
在 Java 编程里字符串操作十分常见而 String 类作为 Java 标准库的核心类用于表示不可变的字符序列。任何对字符串的修改操作都会返回一个新的字符串对象不会改变原始字符串。本文将详细介绍 String 类的常用方法并结合示例代码帮助理解。
一、String 对象的创建
String 对象的创建主要有以下两种方式
1. 直接赋值
这是最常见的创建字符串的方式使用双引号将一系列字符括起来即可
String str1 Hello, ;2. 使用 new 关键字
通过对象实例化的方式将需要创建的字符串作为构造参数传入
String str2 new String(Hello, Java);若调用 String 类的无参构造方法则会创建一个空字符串不过这种方式很少使用
String str3 new String();二、获取字符串长度
可以使用 length() 方法来获取字符串的长度示例代码如下
public class StringMethod1 {public static void main(String[] args) {String str hello world!;int length str.length();System.out.println(str的长度为 length);}
}运行结果
str的长度为12需要注意的是字符串中的空格也算一个字符。
三、字符串查找
1. 获取指定位置字符
使用 char charAt(int index) 方法可以获取字符串指定位置的字符索引下标从 0 开始。示例如下
public class StringMethod2 {public static void main(String[] args) {String str I love Java;char c str.charAt(7);System.out.println(索引位置为7的字符为 c);}
}运行结果
索引位置为7的字符为J2. 查找字符串位置
indexOf()获取字符或子串在字符串中第一次出现的位置。lastIndexOf()获取字符或子串在字符串中最后一次出现的位置。
示例代码如下
public class StringMethod2 {public static void main(String[] args) {String str I love Java, I love imooc!;// 获取字符在字符串中第一次出现的位置int i1 str.indexOf(a);System.out.println(字符a在字符串str第一次出现的位置为 i1);// 获取子串在字符串中第一次出现的位置int i2 str.indexOf(love);System.out.println(子串love在字符串str第一次出现的位置为 i2);// 获取字符在字符串中最后一次出现的位置int i3 str.lastIndexOf(e);System.out.println(字符e在字符串str最后一次出现的位置为 i3);// 获取子串在字符串中最后一次出现的位置int i4 str.lastIndexOf(I love);System.out.println(子串I love在字符串str最后一次出现的位置为 i4);// 查找不存在的字符int i5 str.indexOf(E);System.out.println(查找不存在的字符E的结果为 i5);}
}运行结果
字符a在字符串str第一次出现的位置为8
子串love在字符串str第一次出现的位置为2
字符e在字符串str最后一次出现的位置为18
子串I love在字符串str最后一次出现的位置为13
查找不存在的字符E的结果为-1需要注意的是以上方法的参数都是区分大小写的如果没有找到指定的字符或子串会返回 -1。
四、字符串截取
可以使用 substring() 方法来获取子串String 类中有两个重载的实例方法
String substring(int beginIndex)获取从 beginIndex 位置开始到结束的子串。String substring(int beginIndex, int endIndex)获取从 beginIndex 位置开始到 endIndex 位置的子串不包含 endIndex 位置字符。
示例代码如下
public class StringMethod3 {public static void main(String[] args) {String str I love Java;String substring1 str.substring(2);String substring2 str.substring(2, 6);System.out.println(从索引位置2到结束的子串为 substring1);System.out.println(从索引位置2到索引位置6的子串为 substring2);}
}运行结果
从索引位置2到结束的子串为love Java
从索引位置2到索引位置6的子串为love五、字符串切割
1. 切割为子串数组
使用 String[] split(String regex) 方法可将字符串切割为子串其参数 regex 是一个正则表达式分隔符返回字符串数组。示例如下
public class StringMethod4 {public static void main(String[] args) {String str1 I love Java;String[] strArr str1.split( );for (String str : strArr) {System.out.print(str \t);}}
}运行结果
I love Java对于一些特殊的分隔符如 *、^、:、|、. 等需要使用转义字符转义。例如
// 以 * 切割
String str2 I*love*Java;
String[] strArr2 str2.split(\\*);// 以 \ 切割
String str3 I\\love\\Java;
String[] strArr3 str3.split(\\\\);// 以 | 切割
String str4 I|love|Java;
String[] strArr4 str4.split(\\|);另外还有一个重载方法 String[] split(String regex, int limit)其第二个参数 limit 用以控制正则匹配被应用的次数会影响结果的长度。
2. 切割为 byte 数组
在实际工作中网络上的数据传输通常使用二进制字节数据因此字符串和字节数组之间的相互转换很常用。可以使用 getBytes() 方法将字符串转换为 byte 数组示例如下
public class StringMethod4 {public static void main(String[] args) {String str2 我喜欢Java;System.out.println(将字符串转换为byte数组);byte[] ascii str2.getBytes();for (byte aByte : ascii) {System.out.print(aByte \t);}// 将字节数组转换为字符串String s new String(ascii);System.out.println(\n将字节数组转换为字符串 s);}
}六、字符串大小写转换
字符串的大小写转换有两个方法
toLowerCase()将字符串转换为小写。toUpperCase()将字符串转换为大写。
示例代码如下
public class StringMethod5 {public static void main(String[] args) {String str HELLO world;String s1 str.toLowerCase();System.out.println(字符串str转换为小写后为 s1);String s2 s1.toUpperCase();System.out.println(字符串s1转换为大写后为 s2);// 实现大小写互换String[] strArr str.split( );String result strArr[0].toLowerCase() strArr[1].toUpperCase();System.out.println(字符串str的大小写互换后为 result);}
}运行结果
字符串str转换为小写后为hello world
字符串s1转换为大写后为HELLO WORLD
字符串str的大小写互换后为hello WORLD七、字符串比较
String 类提供了 boolean equals(Object object) 方法来比较字符串内容是否相同返回一个布尔类型的结果。需要特别注意的是在比较字符串内容是否相同时必须使用 equals() 方法而不能使用 运算符。示例代码如下
public class StringMethod6 {public static void main(String[] args) {String str1 hello;String str2 hello;String str3 new String(hello);System.out.println(使用equals()方法比较str1和str2的结果为 str1.equals(str2));System.out.println(使用运算符比较str1和str2的结果为 (str1 str2));System.out.println(使用equals()方法比较str1和str3的结果为 str1.equals(str3));System.out.println(使用运算符比较str1和str3的结果为 (str1 str3));}
}运行结果
使用equals()方法比较str1和str2的结果为true
使用运算符比较str1和str2的结果为true
使用equals()方法比较str1和str3的结果为true
使用运算符比较str1和str3的结果为false运算符比较的是两个变量的地址而不是内容。当使用直接赋值的方式创建字符串时相同内容的字符串会指向常量池中的同一个对象而使用 new 关键字创建字符串对象时会在堆空间实例化一个新的对象。
八、小结
本文介绍了 Java String 类的常用方法
使用 length() 方法可以获取字符串长度。使用 charAt()、indexOf() 以及 lastIndexOf() 方法可以对字符串进行查找。substring() 方法可以对字符串进行截取split()、getBytes() 方法可以将字符串切割为数组。toLowerCase() 和 toUpperCase() 方法分别用于大小写转换使用 equals() 方法对字符串进行比较要注意对字符串内容进行比较时不要使用 运算符。
这些方法大多有重载方法实际工作中要根据合适的场景选用对应的重载方法。此外String 类还有很多未介绍到的方法使用时可以翻阅官网文档进行学习。