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
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)
•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
- 关于资源售价和售后服务的说明?
- 代码有没有售后服务和技术支持?
- 有没有搭建服务?
- 链接地址失效了怎么办?
- 关于解压密码