Strings
在Java编程中广泛使用的字符串是一系列字符。 在Java编程语言中,字符串被视为对象。
Java平台提供String类来创建和操作字符串。
创建字符串
创建字符串的最直接方法是写 -
String greeting = "Hello world!";
每当它遇到代码中的字符串文字时,编译器就会创建一个String对象,其值在这种情况下为“Hello world!”。
与任何其他对象一样,您可以使用new关键字和构造函数创建String对象。 String类有11个构造函数,允许您使用不同的源(例如字符数组)提供字符串的初始值。
例子 (Example)
public class StringDemo {
public static void main(String args[]) {
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
String helloString = new String(helloArray);
System.out.println( helloString );
}
}
这将产生以下结果 -
输出 (Output)
hello.
Note - String类是不可变的,因此一旦创建,就无法更改String对象。 如果有必要对字符串进行大量修改,那么您应该使用字符串缓冲区和字符串生成器类。
String Length
用于获取对象信息的accessor methods称为accessor methods 。 可以与字符串一起使用的一种访问器方法是length()方法,它返回字符串对象中包含的字符数。
以下程序是length()方法String类的示例。
例子 (Example)
public class StringDemo {
public static void main(String args[]) {
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
System.out.println( "String Length is : " + len );
}
}
这将产生以下结果 -
输出 (Output)
String Length is : 17
连接字符串
String类包括一个连接两个字符串的方法 -
string1.concat(string2);
这将返回一个新的字符串,该字符串为string1,并在结尾处添加了string2。 你也可以使用带有字符串文字的concat()方法,如 -
"My name is ".concat("Zara");
字符串通常与+运算符连接,如 -
"Hello," + " world" + "!"
结果 -
"Hello, world!"
让我们看看下面的例子 -
例子 (Example)
public class StringDemo {
public static void main(String args[]) {
String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
}
}
这将产生以下结果 -
输出 (Output)
Dot saw I was Tod
创建格式字符串
你有printf()和format()方法来打印格式化数字的输出。 String类有一个等效的类方法format(),它返回一个String对象而不是一个PrintStream对象。
使用String的static format()方法可以创建一个可以重用的格式化字符串,而不是一次性打印语句。 例如,而不是 -
例子 (Example)
System.out.printf("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);
你可以写 -
String fs;
fs = String.format("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);
System.out.println(fs);
字符串的方法 (String Methods)
以下是String类支持的方法列表 -
Sr.No. | 方法和描述 |
---|---|
1 | char charAt(int index) 返回指定索引处的字符。 |
2 | int compareTo(Object o) 将此String与另一个Object进行比较。 |
3 | int compareTo(String anotherString) 按字典顺序比较两个字符串。 |
4 | int compareToIgnoreCase(String str) 按字典顺序比较两个字符串,忽略大小写差异。 |
5 | String concat(String str) 将指定的字符串连接到此字符串的末尾。 |
6 | boolean contentEquals(StringBuffer sb) 当且仅当此String表示与指定的StringBuffer相同的字符序列时,返回true。 |
7 | static String copyValueOf(char [] data) 返回表示指定数组中字符序列的String。 |
8 | static String copyValueOf(char [] data,int offset,int count) 返回表示指定数组中字符序列的String。 |
9 | boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结尾。 |
10 | boolean equals(Object anObject) 将此字符串与指定的对象进行比较。 |
11 | boolean equalsIgnoreCase(String anotherString) 将此String与另一个String进行比较,忽略大小写。 |
12 | byte getBytes() 使用平台的默认字符集将此String编码为字节序列,并将结果存储到新的字节数组中。 |
13 | byte [] getBytes(String charsetName) 使用指定的字符集将此String编码为字节序列,将结果存储到新的字节数组中。 |
14 | void getChars(int srcBegin,int srcEnd,char [] dst,int dstBegin) 将此字符串中的字符复制到目标字符数组中。 |
15 | int hashCode() 返回此字符串的哈希码。 |
16 | int indexOf(int ch) 返回指定字符第一次出现的字符串中的索引。 |
17 | int indexOf(int ch,int fromIndex) 返回指定字符第一次出现的此字符串中的索引,从指定索引处开始搜索。 |
18 | int indexOf(String str) 返回指定子字符串第一次出现的字符串中的索引。 |
19 | int indexOf(String str,int fromIndex) 从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引。 |
20 | String intern() 返回字符串对象的规范表示。 |
21 | int lastIndexOf(int ch) 返回指定字符最后一次出现的字符串中的索引。 |
22 | int lastIndexOf(int ch,int fromIndex) 返回指定字符最后一次出现的字符串中的索引,从指定的索引开始向后搜索。 |
23 | int lastIndexOf(String str) 返回指定子字符串最右边出现的字符串中的索引。 |
24 | int lastIndexOf(String str,int fromIndex) 返回指定子字符串最后一次出现的字符串中的索引,从指定索引开始向后搜索。 |
25 | int length() 返回此字符串的长度。 |
26 | 布尔匹配(String regex) 判断此字符串是否与给定的正则表达式匹配。 |
27 | boolean regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len) 测试两个字符串区域是否相等。 |
28 | boolean regionMatches(int toffset,String other,int ooffset,int len) 测试两个字符串区域是否相等。 |
29 | 字符串替换(char oldChar,char newChar) 返回一个新字符串,该字符串是使用newChar替换此字符串中出现的所有oldChar。 |
30 | String replaceAll(String regex,String replacement 将给定替换的给定正则表达式匹配的此字符串的每个子字符串替换。 |
31 | String replaceFirst(String regex,String replacement) 将给定替换的给定正则表达式匹配的此字符串的第一个子字符串替换。 |
32 | String [] split(String regex) 将此字符串拆分为给定正则表达式的匹配项。 |
33 | String [] split(String regex,int limit) 将此字符串拆分为给定正则表达式的匹配项。 |
34 | boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开头。 |
35 | boolean startsWith(String prefix,int toffset) 测试此字符串是否以指定的前缀开始指定的索引。 |
36 | CharSequence subSequence(int beginIndex,int endIndex) 返回一个新的字符序列,它是该序列的子序列。 |
37 | String substring(int beginIndex) 返回一个新字符串,该字符串是此字符串的子字符串。 |
38 | String substring(int beginIndex,int endIndex) 返回一个新字符串,该字符串是此字符串的子字符串。 |
39 | char [] toCharArray() 将此字符串转换为新的字符数组。 |
40 | String toLowerCase() 使用默认语言环境的规则将此String中的所有字符转换为小写。 |
41 | String toLowerCase(Locale locale) 使用给定Locale的规则将此String中的所有字符转换为小写。 |
42 | String toString() 这个对象(已经是一个字符串!)本身就返回了。 |
43 | String toUpperCase() 使用默认语言环境的规则将此String中的所有字符转换为大写。 |
44 | String toUpperCase(Locale locale) 使用给定Locale的规则将此String中的所有字符转换为大写。 |
45 | String trim() 返回字符串的副本,省略前导和尾随空格。 |
46 | static String valueOf(原始数据类型x) 返回传递的数据类型参数的字符串表示形式。 |