Java快速入门(19) - String类详解

本文详细介绍了Java中的String类,包括如何创建字符串、获取字符串长度、拼接字符串以及创建格式化字符串的方法。强调了String类的不可变性和推荐使用StringBuilder进行字符串修改。此外,还提到了format()方法用于创建可重复使用的格式化字符串。
摘要由CSDN通过智能技术生成

前言

Java中广泛应用的字符串由一连串的字符组成。在Java中,字符串被视为对象。
Java平台提供String类来创建和操作字符串。

创建字符串

创建字符串最直接的写法是:

String str = "Hello world!";

当在代码中执行到字符串时,编译器会创建一个String对象,并将其值设置为字符串内容,例如上文代码中的"Hello world"。
与其它任何类创建对象一样,我们也可以通过new关键字和构造器来创建String类的对象。String类有11个构造器,因此我们可以不同的方式来创建对象,例如下面代码中,通过字符数组来创建。

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 );
   }
}

程序会输出:

hello.

需要注意的是:String类是不可变的,因此一旦创建了String类对象后就不能对其做修改。如果必须对字符串进行不断修改的话,我们应该使用StringBuffer或StringBuilder类。

字符串长度

用来获取对象信息的方法被称为访问器方法(accessor method)。length()方法是可用于字符串的访问器方法,其返回字符串中包含的字符数量。
下面程序代码是使用String类的length()方法的例子:

Live Demo
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 );
   }
}

程序输出如下:

String Length is : 17

拼接字符串

String类中还有一个方法用于拼接两个字符串:

string1.concat(string2);

这个方法会返回一个新的字符串,其值为将string2拼接到string1后面的结果。除了用于字符串变量外,concat()方法同样也可以用在引号引起来的字符串:

"My name is ".concat("Lilei");

字符串的拼接更常见的是使用加号(+):

"Hello, " + " world" + "!"

其拼接结果为:

"Hello, world!"

我们来看一下这个程序例子:

Live Demo
public class StringDemo {

   public static void main(String args[]) {
      String string1 = "saw I was ";
      System.out.println("Dot " + string1 + "Tod");
   }
}

程序输出为:

Dot saw I was Tod

创建格式化字符串

我们可以使用printf()、format()方法来输出带格式的数字。String类中也有相同功能的方法,format(),来返回String对象而不是PrintStream对象。
使用String的静态方法format(),我们可以创建可以重复使用的格式化字符串,和只能打印输出一次的语句有所不同。比如,

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);

这样一来,我们就可以重复使用字符串变量fs,而不仅仅只是进行打印输出。

String类中的方法

下面表格中列出了String类中支持的方法:

序号方法& 描述
1char charAt(int index)
返回字符串中特定位置的字符。
2int compareTo(Object o)
将字符串和另一个对象进行比较。
3int compareTo(String anotherString)
按字典顺序比较两个字符串。
4int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,忽略大小写。
5String concat(String str)
拼接字符串,将参数中的字符串拼接在后面。
6boolean contentEquals(StringBuffer sb)
当且仅当此字符串与指定的StringBuffer有相同的字符序列时,才返回true。
7static String copyValueOf(char[] data)
返回字符数组所表示的字符串。
8static String copyValueOf(char[] data, int offset, int count)
返回字符串数组特定位置开始所表示的字符串。
9boolean endsWith(String suffix)
判断字符串是不是以指定的后缀结尾。
10boolean equals(Object anObject)
比较字符串和指定对象的类型和值是否相等。
11boolean equalsIgnoreCase(String anotherString)
比较两个字符串是否相等,忽略大小写。
12byte getBytes()
使用默认字符集将此字符串编码为字节序列,并将结果存储到新的字节变量中。
13byte[] getBytes(String charsetName)
使用命名的字符集将此字符串编码为字节序列,并将结果存储到新的字节数组中。
14void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将字符串中的指定位置的字符复制到目标字符数组中。
15int hashCode()
返回字符串的哈希编码。
16int indexOf(char ch)
返回指定字符在字符串中首次出现的位置。
17int indexOf(char ch, int fromIndex)
返回指定字符从特定位置开始在字符串中首次出现的位置。
18int indexOf(String str)
返回指定字符串子串在字符串中首次出现的位置。
19int indexOf(String str, int fromIndex)
返回指定字符串子串从特定位置开始在字符串中首次出现的位置。
20String intern()
返回字符串对象的规范表示。
21int lastIndexOf(char ch)
返回指定字符在字符串中最后一次出现的位置。
22int lastIndexOf(char ch, int fromIndex)
返回指定字符从特定位置开始在字符串中最后一次出现的位置。
23int lastIndexOf(String str)
返回指定字符串子串在字符串中最后一次出现的位置。
24int lastIndexOf(String str, int fromIndex)
返回指定字符串子串从特定位置开始在字符串中最后一次出现的位置。
25int length()
返回字符串长度。
26boolean matches(String regex)
判断字符串是否匹配正则表达式。
27boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
判断两个字符串指定位置的子串是否相等,可指定是否忽略大小写。
28boolean regionMatches(int toffset, String other, int ooffset, int len)
判断两个字符串指定位置的子串是否相等。
29String replace(char oldChar, char newChar)
用字符替换字符串中的指定字符,返回替换后的新字符串。
30String replaceAll(String regex, String replacement)
用正则表达式替换所有的字符,返回替换后的新字符串。
31String replaceFirst(String regex, String replacement)
用正则表达式替换首次匹配的子串,返回替换后的新字符串。
32String[] split(String regex)
围绕给定正则表达式的匹配项拆分此字符串。
33String[] split(String regex, int limit)
围绕给定正则表达式的匹配项拆分此字符串。
34boolean startsWith(String prefix)
判断字符串是否以指定字符串开头。
35boolean startsWith(String prefix, int toffset)
从指定位置开始,判断字符串是否以指定字符串开头。
36CharSequence subSequence(int beginIndex, int endIndex)
按指定位置提取字符序列并返回CharSequence类型对象。
37String substring(int beginIndex)
返回从指定位置开始的子串。
38String substring(int beginIndex, int endIndex)
返回指定开始位置和结束位置的子串。
39char[] toCharArray()
将字符串转换为字符数组。
40String toLowerCase()
将字符串中的大写字母全部转换为小写后,返回转换后的字符串。
41String toLowerCase(Locale locale)
使用给定语言环境的规则将此字符串中的所有字符转换为小写。
42String toString()
将对象转换为字符串。
43String toUpperCase()
将字符串中的小写字母全部转换为大写后,返回转换后的字符串。
44String toUpperCase(Locale locale)
使用给定语言环境的规则将此字符串中的所有字符转换为大写。
45String trim()
将字符串首尾的空白字符去掉后返回。
46static String valueOf(primitive data type x)
返回传递的数据类型参数的字符串表示形式。

关注公众号「小白轻松学编程」

更多交流,欢迎微信搜索并关注公众号「 小白轻松学编程 」!
博客里所有教程会第一时间在公众号上更新哟,扫码关注一下吧~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值