先进行专栏介绍
本专栏是自己学Java的旅途,纯手敲的代码,自己跟着黑马课程学习的,并加入一些自己的理解,对代码和笔记
进行适当修改。希望能对大家能有所帮助,同时也是请大家对我进行监督,对我写的代码进行建议,互相学习。
String详解
Java中的String是一个不可变的字符序列,它是Java中最常用的数据类型之一。
常用构造方法
String():无参构造方法,创建一个空字符串对象。
String(char[] value):通过字符数组创建一个字符串对象。
String(char[] value, int offset, int count):通过字符数组的一部分创建一个字符串对象,从指定的
偏移量开始,取count个字符。
String(byte[] bytes):通过字节数组创建一个字符串对象,使用平台的默认字符集将字节解码为字符。
String(byte[] bytes, int offset, int length):通过字节数组的一部分创建一个字符串对象,从指定的
偏移量开始,取length个字节,并使用平台的默认字符集将字节解码为字符。
String(String original):通过复制原始字符串创建一个新的字符串对象。
String(StringBuffer buffer):通过StringBuffer对象创建一个字符串对象。
String(StringBuilder builder):通过StringBuilder对象创建一个字符串对象。
代码演示
public class crj{
public static void main ( String [ ] args) {
String str1 = new String ( ) ;
System . out. println ( "str1: " + str1) ;
char [ ] charArray = { 'H' , 'e' , 'l' , 'l' , 'o' } ;
String str2 = new String ( charArray) ;
System . out. println ( "str2: " + str2) ;
String str3 = new String ( charArray, 2 , 3 ) ;
System . out. println ( "str3: " + str3) ;
byte [ ] byteArray = { 72 , 101 , 108 , 108 , 111 } ;
String str4 = new String ( byteArray) ;
System . out. println ( "str4: " + str4) ;
String str5 = new String ( byteArray, 2 , 3 ) ;
System . out. println ( "str5: " + str5) ;
String original = "Hello" ;
String str6 = new String ( original) ;
System . out. println ( "str6: " + str6) ;
StringBuffer buffer = new StringBuffer ( "Hello" ) ;
String str7 = new String ( buffer) ;
System . out. println ( "str7: " + str7) ;
StringBuilder builder = new StringBuilder ( "Hello" ) ;
String str8 = new String ( builder) ;
System . out. println ( "str8: " + str8) ;
}
}
常用成员方法
int length():返回字符串的长度。
char charAt(int index):返回指定索引位置的字符。
int indexOf(String str):返回指定子字符串在字符串中第一次出现的索引位置。
int lastIndexOf(String str):返回指定子字符串在字符串中最后一次出现的索引位置。
boolean startsWith(String prefix):判断字符串是否以指定的前缀开始。
boolean endsWith(String suffix):判断字符串是否以指定的后缀结束。
boolean isEmpty():判断字符串是否为空。
String substring(int beginIndex):返回从指定索引位置开始到字符串末尾的子字符串。
String substring(int beginIndex, int endIndex):返回从指定的开始索引位置到结束索引位置的子字
符串。
String replace(char oldChar, char newChar):将字符串中的所有旧字符替换为新字符。
String replace(CharSequence target, CharSequence replacement):将字符串中的所有目标字符序列替换为指定的
替换字符序列。
String[] split(String regex):将字符串根据指定的正则表达式分割为字符串数组。
String trim():去除字符串两端的空白字符。
boolean equals(Object obj):判断字符串是否与指定对象相等。
boolean equalsIgnoreCase(String anotherString):忽略大小写判断字符串是否与另一个字符串相等。
String toLowerCase():将字符串转换为小写。
String toUpperCase():将字符串转换为大写。
String concat(String str):将指定字符串连接到原字符串的末尾。
boolean contains(CharSequence sequence):判断字符串是否包含指定的字符序列。
String format(String format, Object... args):将指定格式的字符串与参数进行格式化。
代码示例
public class StringMethodsDemo {
public static void main ( String [ ] args) {
String str = "Hello, World!" ;
int length = str. length ( ) ;
System . out. println ( "Length: " + length) ;
char ch = str. charAt ( 7 ) ;
System . out. println ( "Character at index 7: " + ch) ;
int index = str. indexOf ( "World" ) ;
System . out. println ( "Index of 'World': " + index) ;
int lastIndex = str. lastIndexOf ( "o" ) ;
System . out. println ( "Last index of 'o': " + lastIndex) ;
boolean startsWith = str. startsWith ( "Hello" ) ;
System . out. println ( "Starts with 'Hello': " + startsWith) ;
boolean endsWith = str. endsWith ( "World" ) ;
System . out. println ( "Ends with 'World': " + endsWith) ;
boolean isEmpty = str. isEmpty ( ) ;
System . out. println ( "Is empty: " + isEmpty) ;
String substring1 = str. substring ( 7 ) ;
System . out. println ( "Substring from index 7: " + substring1) ;
String substring2 = str. substring ( 7 , 12 ) ;
System . out. println ( "Substring from index 7 to 12: " + substring2) ;
String replaced = str. replace ( 'o' , 'O' ) ;
System . out. println ( "Replaced string: " + replaced) ;
String replaced2 = str. replace ( "World" , "Universe" ) ;
System . out. println ( "Replaced string: " + replaced2) ;
String [ ] splitArray = str. split ( "," ) ;
System . out. println ( "Split array: " + Arrays . toString ( splitArray) ) ;
String trimmed = str. trim ( ) ;
System . out. println ( "Trimmed string: " + trimmed) ;
boolean equals = str. equals ( "Hello, World!" ) ;
System . out. println ( "Equals 'Hello, World!': " + equals) ;
boolean equalsIgnoreCase = str. equalsIgnoreCase ( "hello, world!" ) ;
System . out. println ( "Equals ignore case 'hello, world!': " + equalsIgnoreCase) ;
String lowerCase = str. toLowerCase ( ) ;
System . out. println ( "Lower case: " + lowerCase) ;
String upperCase = str. toUpperCase ( ) ;
System . out. println ( "Upper case: " + upperCase) ;
String concat = str. concat ( " How are you?" ) ;
System . out. println ( "Concatenated string: " + concat) ;
boolean contains = str. contains ( "World" ) ;
System . out. println ( "Contains 'World': " + contains) ;
String formatted = String . format ( "The value of pi is approximately %.2f" , Math . PI ) ;
System . out. println ( "Formatted string: " + formatted) ;
}
}
总结
String是一个重要的数据类型,它提供了许多方法来处理字符串。由于字符串的不可变性,每次对字符串进行
操作都会创建一个新的字符串对象,因此在频繁操作字符串时需要注意性能问题。