首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JAVA应用程序开发之String类常用API

点击蓝字关注我吧

【本文详细介绍了JAVA应用开发中的String类常用API,欢迎读者朋友们阅读、转发和收藏!】

1 基本概念

API ( Application Interface 应用程序接口)是类中提供的接口,类库是类的集合。在 Java 语言中可以通过 import 关键字导入相关的类,在 JDK 的 API 中提供了 130 多个包,如 java.awt 、 java.io 等。可以通过 JDK 的 API 文档来查看这些类,其中主要包括类的继承结构、类的应用、成员变量表、构造方法等,并对每个变量的使用目的作了详细的描述, API 文档是程序开发人员不可或缺的工具。

String 类是 java 中最常见的 API ,代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。

1.1 常用构造方法

在 Java 语言中将字符串作为对象来处理,因此可以像创建其他类对象一样来创建字符串对象,创建对象要使用类的构造方法。String 类的常用构造方法如下。

1 ) String(char[] value)

该构造方法可分配一个新的 String 对象,使其表示字符数组参数中所有元素连接的结果。实例代码如下:

Char a[] = {‘s’,’t’,’u’,’d’,’e’,’n’,’t’};

String s = new String(a);

等价于 String s = new String(“student”);

2 ) String(char a[], int offset, int length)

提取字符数组 a 中的一部分创建一个字符串对象,参数 offset 表示开始截取字符串的位置, length 表示截取字符串的长度。实例代码如下:

Char a[] = {‘s’,’t’,’u’,’d’,’e’,’n’,’t’};

String s = new String(a,2,4);

等价于 String s = new String(“uden”);

3 )除了通过以上几种使用 String 类的构造方法来创建字符串变量外,还可通过字符串常量的引用赋值给一个字符串变量。实例代码如下:

String str1,str2;

str1 = “We are students”;

str2 = “We are students”;1.2 常用使用方法

字符串作为对象,可通过相应方法获取字符串的有效信息,如获取某字符串的长度、某个索引位置的字符等。

Ø 获取字符串长度

str.length()

使用 String 类的 length() 方法可获取声明的字符串对象的长度,其中, str 为字符串对象。实例代码如下:

String str = “we are students”;

Int size = str.length();// 变量 size 的值为 15 ,长度包括字符串中的空格

Ø 字符串查找

String 类提供了两种查找字符串的方法,即 indexOf() 与 lastIndexOf() 方法。这种两种方法都允许在字符串中搜索指定条件的字符或字符串。indexOf() 方法返回的是搜索的字符或字符串首次出现的位置, lastIndexOf() 方法返回的是搜索的字符或字符串最后一次出现的位置。

1 ) str.indexOf(substr)

以下实例表示查找字符 a 在字符串 str 中的索引位置:

String str = “we are students”;

Int size = str.indexOf(“a”); // 变量 size 的值是 3 ,其中 w 是 0 位,第一个空格是 2 位

2 ) str.lastIndexOf(substr)

如果 lastIndexOf() 方法中的参数是空字符串 ”” (没有空格),则返回的结果与调用该字符串 length ()方法的返回结果相同。

Ø 获取指定索引位置的字符

str.charAt(int index)

使用 chatAt() 方法可将指定索引处的字符返回,实例代码如下:

String str = “hello word”;

char mychar = str.charAt(6);//mychar 的值为 w

Ø 获取子字符串

1 ) str.substring(int beginIndex)

该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串,其中, beginIndex 指定从某一索引处开始截取字符串,实例代码如下:

String str = “hello word”;

String substr = str.substing(3);//substr 值为 lo word

2 ) str.substring(int beginIndex,int endIndex)

该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串,其中, beginIndex 表示开始截取字符串的索引位置, endIndex 表示子字符串在整个字符串中的结束位置,实例代码如下:

String str = “hello word”;

String substr = str.substing(0,3);//substr 值为 hel

Ø 去除空格

str.trim()

trim() 方法返回字符串的副本,忽略前导空格和尾部空格。其中, str 为任意字符串对象,实例代码如下:

String str = “ hello word ”;

int length1 = str.length();//length1 值为 16

int length2 = str.trim().length();//length2 值为 10

Ø 字符串替换

str.replace(char oldChar,char newChar)

replace() 方法返回的结果是一个新的字符串,其中, oldChar 表示要替换的字符或字符串, newChar 表示替换原来字符串的内容。如果字符串 oldChar 没有出现在该对象表达式中的字符串序列中,则将原字符串返回。实例代码如下:

String str = “address”;

String newstr = str.replace(“a”,”A”);//newstr 的值为 Address

Ø 判断字符串的开始与结尾

startsWith() 方法与 endsWith() 方法分别用于判断字符串是否以指定的内容开始或结束,这两个方法的返回值都为 boolean 类型。

1 ) str.startsWith(String prefix)

该方法用于判断当前字符串对象的前缀是否是参数指定的字符串,其中, prefix 是指作为前缀的字符。

2 ) str.endsWith(String suffix)

该方法用于判断当前字符串是否是以给定的子字符串结束,其中, suffix 是指作为后缀的字符串。

代码实例如下:

String num1 = ”22045612”;

String num2 = “21304578”;

Boolean b = num1.startsWith(“22”);//b 为 true

Boolean b2 = num1.endsWith(“78”);//b2 为 false

Boolean b3 = num2.startsWith(“22”);//b3 为 false

Boolean b4 = num2.endsWith(“78”);//b4 为 true

Ø 判断字符串是否相等

对字符串对象进行比较不能简单地使用比较运算符“ == ”,因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回 false 。

1 ) str.equals(String otherstr)

其中, str 、 otherstr 是参加比较的两个字符串对象。如果两个字符串具有相同的字符和长度,则使用 equals() 方法进行比较时,返回 true 。

2 ) str.equalsIgnoreCase(String otherstr)

其中, str 、 otherstr 是参加比较的两个字符串对象。使用 equals() 方法对字符串进行比较时是区分大小写的,而使用 equalsIgnoreCase() 方法是在忽略了大小写的情况下比较两个字符串是否相等,返回结果仍为 boolean 类型。

代码实例如下:

String s1 = new String(“abc”);

String s2 = new String(“ABC”);

String s3 = new String(“abc”);

boolean b = s1.equals(s2);//b 为 false

boolean b2 = s1.equalsIgnoreCase(s2);//b2 为 true

Ø 按字典顺序比较两个字符串

compareTo() 方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的 Unicode 值,按字典顺序将此 string 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为 0 。

Str.compareTo(String otherstr)

其中, str 、 otherstr 是参加比较的两个字符串对象。代码实例如下:

String str = new String(“b”);

String str2 = new String(“a”);

String str3 = new String(“c”);

int i1 = str.compareTo(str2);//i1 值为 1

int i2 = str.compareTo(str3);//i2 值为 -1

Ø 字母大小写转换

字符串的 toLowerCase() 方法可将字符串中的所有字符从大写字母改写为小写字母,而 toUpperCase() 方法可将字符串中的小写字母改写为大写字母。

1 ) str.toLowerCase()

其中, str 是要进行转换的字符串。该方法将 String 转换为小写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则将返回一个新的字符串,将原字符串中的每个该进行小写转换的字符都转换成等价的小写字符。字符长度与原字符长度相同。

2 ) str.toUpperCase()

其中, str 是要进行转换的字符串。该方法将 String 转换为大写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则将返回一个新的字符串,将原字符串中的每个该进行大写转换的字符都转换成等价的小写字符。字符长度与原字符长度相同。

代码实例如下:

String str = new String(“abc DEF”);

String newstr = str.toLowerCase();//newstr 值为 abc def

String newstr2 = str.toUpperCase();//newstr2 值为 ABC DEF

Ø 字符串分割

使用 split() 方法可以使字符串按指定的分割字符或字符串对内容进行分割,并将分割后的结果存放在字符串数组中。Split() 方法提供了两种重载形式。

1 ) str.split(String sign)

其中, sign 为分割字符串的分割符,也可以使用正则表达式。该方法可根据给定的分割符对字符串进行拆分。

2 ) str.split(String sign,int limit)

其中, sign 为分割字符串的分割符,也可以使用正则表达式;limit 为限制的分割次数。该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数。

说明:没有统一的对字符进行分割的符号,如果想定义多个分割符,可使用符号“ | ”。例如,“ ,|= ”表示分割符分别为“,”和“ = ”。

代码实例如下:

public class Test

{

public static void main(final String[] args)

{

final String str = new String("abc,def,ghi,gkl");

final String[] newstr = str.split(",");

for (int i = 0; i

{

System.out.println(newstr[i]);

}

final String[] newstr2 = str.split( "," , 2);

for ( int j = 0; j 

{

System. out .println( newstr [ j ]);

}

}

}

Ø 格式化字符串

String 类的静态 format() 方法用于创建格式化的字符串。Format() 方法有两种重载形式。

1 ) str.format(String format,Object…args)

该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。其中, format 表示格式字符串, args 表示格式字符中由格式说明符引用的参数,如果还有格式说明符以外的参数,则忽略这些额外的参数。此参数的数目是可变的,可以为 0 。

2) str.format(Local l,String format,Object…args)

l 表示格式化过程中要应用的语言环境,如果 l 为 null ,则不进行本地化。

除此之外, String 类还有很多用法,此处不一一讲解,可以参考 API 文档。

我知道你在看

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200524A04PHR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券