Java String字符串大全

Java String字符串大全

Java 字符串

从概念上讲,Java字符串就是字符序列。Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,很自然地叫做。每个用双引号括起来的字符串都是类的一个实例

1. 子串

类的方法可以从一个较大的字符串提取出一个子串。例如:

String greeting = "Hello World!";
String s1 = greeting.substring(0,3); // s1 = "Hel"
String s2 = greeting.substring(2,7); // s2 = "llo W"

方法的第二个参数是不想复制的第一个位置。在s1从0开始计数,直到3为止,但不包含3。s2从2开始,到7为止,但不包括7。

子串的长度:.(a,b)的长度为b-a。

2.拼接

与绝大多数的程序设计语言一样,Java使用+号连接(拼接)两个字符串。

String s = "Hello";
int x = 3;
int y = 6;
System.out.println(s + "World");
System.out.println(s + x + y);
System.out.println(x + s + y);
System.out.println(x + y + s);
System.out.println(s + (x + y));

输出

HelloWorld
Hello36
3Hello6
9Hello
Hello9

如果需要把多个字符串放在一起,用一个定界符分隔,可以使用静态join方法:

String all = String.join("/", "A", "B", "C", "D");
System.out.println(all);

A/B/C/D

3. 不可变字符串

类没有提供用于修改字符串的方法。如果希望将=”Hello”的内容修改为“Help!”,不能直接地将的最后两个位置的字符修改为‘p’和’!’。正确方法是先提取需要的字符,然后再拼接上替换的字符串:

String greeting = "Hello";
greeting = greeting.substring(0, 3) + "p!";

不可变字符串却有一个优点:编译器可以让字符串共享。查看一下程序会发现:很少需要修改字符串,而是往往需要对字符串进行比较。

4.检测字符串是否相等

可以使用方法检测两个字符串是否相等。对于表达式:

s.equals(t)

如果字符串s与字符串t相等,则返回true;否则返回false。需要注意,s与t可以是字符串变量,也可以是字符串字面量。例如,下列表达式是合法的:

"Hello".equals(greeting)

要想检测两个字符串是否相等,而不区分大小写Java String字符串大全,可以使用方法。

"Hello".equalsIgnoreCase("hello")

一定不要使用=运算符检测两个字符串是否相等!这个运算符只能够确定两个字串是否放置在同一个位置上。当然,如果字符串放置在同一个位置上,它们必然相等。但是,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。

String greeting = "Hello"; //initialize greeting to a string 
if (greeting == "Hello") 
// probably true 
if (greeting.substring(0, 3) == "Hel) 
// probably false

java 字符串indexof

C程序员从不使用=对字符串进行比较,而使用函数。Java的方法与完全类似,因此,可以这样使用:

if (greeting.compareTo("Hello) == 0);

不过,使用看起来更为清晰。

5.空串与Null串

空串””是长度为0的字符串。可以调用以下代码检查一个字符串是否为空:

if (str.length() = 0) 

if (str.equals(""))

空串是一个Java对象,有自己的串长度(0)和内容(空)。不过,变量还可以存放一个特殊的值java 字符串indexof,名为null,这表示目前没有任何对象与该变量关联。要检查一个字符串是否为null,要使用以下条件:

if (str == null)

有时要检查一个字符串既不是null也不为空串java 字符串indexof,这种情况下就需要使用以下条件:

if (str != null && str.length() != 0)

首先要检查str不为null。如果在一个null值上调用方法,会出现错误。

6.码点与代码单元

Java字符串由char值序列组成。char数据类型是一个采用UTF-16编码表示码点的代码单元。大多数的常用字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。

方法将返回采用UTF-16编码表示的给定字符串所需要的代码单元数量。例如:

String greeting = "Hello"; 
int n = greeting.length(); // is 5 . 

要想得到实际的长度,即码点数量,可以调用:

int cpCount = greeting.codePointCount(0, greeting.length); 

调用s.(n)将返回位置n的代码单元,n介于0~s.()-1之间。例如:

char first = greeting.charAt(0); // first is 'H' 
char last = greeting.charAt(4); // last is ’o’ 

要想得到第i个码点,应该使用下列语句

int index = greeting.offsetByCodePoints(0, i); 
int cp = greeting.codePointAt(index);

7. API

Java中的类包含了50多个方法,绝大多数都很有用。下面的API注释汇总了一部分最常用的方法。

• char (int index)

返回给定位置的代码单元。除非对底层的代码单元感兴趣,否则不需要调用这个方法。

• int (int Index)

返回从给定位置开始的码点。

• int (int , int )

返回从代码点开始,位移后的码点索引。

• int ( other)

按照字典顺序java 字符串indexof,如果字符串位于other之前,返回一个负数;如果字符串位于other之后,返回一个正数;如果两个字符串相等,返回0。

• ()

将这个字符串的码点作为一个流返回。调用将它们放在一个数组中。

• new (int , int , int count)

用数组中从开始的count个码点构造一个字符串。

• ( other)

如果字符串与other相等,返回true。

• ( other )

如果字符串与other相等(忽略大小写,)返回true。

• ( )

• ( )

如果字符串以开头或结尾,则返回true。

•int ( str)

•int ( str, int )

•int (int cp)

java 字符串indexof

•int (int cp, int )

返回与字符串str或代码点cp匹配的第一个子串的开始位置。这个位置从索引0或开始计算。如果在原始串中不存在str,返回-1。

•int ( str)

•Int ( str, int )

•int (int cp)

•int (int cp, int )

返回与字符串str或代码点cp匹配的最后一个子串的开始位置。这个位置从原始串尾端或开始计算。

•int ( )

返回字符串的长度。

•int (int , int )

返回和-1之间的代码点数量。没有配成对的代用字符将计入代码点。

• ( , )

返回一个新字符串。这个字符串用 代替原始字符串中所有的。可以用或对象作为参数。

• (int )

• (int , int )

返回一个新字符串。这个字符串包含原始字符串中从到串尾或-1的所有代码单元。

• ( )

• ( )

返回一个新字符串。这个字符串将原始字符串中的大写字母改为小写,或者将原始字符串中的所有小写字母改成了大写字母。

• trim( )

返回一个新字符串。这个字符串将删除了原始字符串头部和尾部的空格。

• join( , … )

返回一个新字符串,用给定的定界符连接所有元素。

构建字符串有些时候Java String字符串大全,需要由较短的字符串构建字符串,例如,按键或来自文件中的单词。采用字符串连接的方式达到此目的效率比较低。每次连接字符串,都会构建一个新的对象,既耗时,又浪费空间。使用类就可以避免这个问题的发生。

如果需要用许多小段的字符串构建一个字符串,那么应该按照下列步骤进行。首先,构建一个空的字符串构建器:

= new ();

当每次需要添加一部分内容时,就调用方法。

builder.append(ch); // appends a single character 
builder.append(str); // appends a string 

在需要构建字符串时就凋用方法,将可以得到一个对象,其中包含了构建器中的字符序列。

= .();

注释: 在JDK5.0中引入类。这个类的前身是,其效率稍有些低,但允许采用多线程的方式执行添加或删除字符的操作。如果所有字符串在一个单线程中编辑(通常都是这样),则应该用替代它。这两个类的API是相同的。

下面的API注释包含了类中的重要方法。

• ()

构造一个空的字符串构建器。

• int ()

返回构建器或缓冲器中的代码单元数量。

• ( str)

追加一个字符串并返回this。

• (char c)

追加一个代码单元并返回this。

• (int cp)

追加一个代码点,并将其转换为一个或两个代码单元并返回this。

• void (int i ,char c)

将第i个代码单元设置为c。

• (int , str)

在位置插入一个字符串并返回this。

• (int , Char c)

在位置插入一个代码单元并返回this。

• (int , int )

删除偏移量从到-1的代码单元并返回this。

• ()

返回一个与构建器或缓冲器内容相同的字符串

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » Java String字符串大全

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们