java中截取字符串的方式
1、length() 字符串的長(zhǎng)度
例:char chars[]={'a','b'.'c'};
String s=new String(chars);
int len=s.length();
2、charAt() 截取一個(gè)字符
例:char ch;
ch="abc".charAt(1); 返回'b'
3、getChars() 截取多個(gè)字符
void getChars(int sourceStart,int?sourceEnd,char target[],int targetStart)
sourceStart指定了子串開始字符的下標(biāo),sourceEnd指定了子串結(jié)束后的下一個(gè)字符的下標(biāo)。因此,子串包含從sourceStart到sourceEnd-1的字符。接收字符的數(shù)組由target指定,target中開始復(fù)制子串的下標(biāo)值是targetStart。
例:String s="this is a demo of the getChars method.";
char buf[]=new char[20];
s.getChars(10,14,buf,0);
4、getBytes()
替代getChars()的一種方法是將字符存儲(chǔ)在字節(jié)數(shù)組中,該方法即getBytes()。
5、toCharArray()
6、equals()和equalsIgnoreCase() 比較兩個(gè)字符串
7、regionMatches() 用于比較一個(gè)字符串中特定區(qū)域與另一特定區(qū)域,它有一個(gè)重載的形式允許在比較中忽略大小寫。
boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)
boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars)
8、startsWith()和endsWith()
startsWith()方法決定是否以特定字符串開始,endWith()方法決定是否以特定字符串結(jié)束
9、equals()和==
equals()方法比較字符串對(duì)象中的字符,==運(yùn)算符比較兩個(gè)對(duì)象是否引用同一實(shí)例。
例:String s1="Hello";
String s2=new String(s1);
s1.eauals(s2); //true
s1==s2;//false
10、compareTo()和compareToIgnoreCase() 比較字符串
11、indexOf()和lastIndexOf()
indexOf() 查找字符或者子串第一次出現(xiàn)的地方。
lastIndexOf() 查找字符或者子串是后一次出現(xiàn)的地方。
12、substring()
它有兩種形式,第一種是:String substring(int startIndex)
第二種是:String substring(int startIndex,int endIndex)
13、concat() 連接兩個(gè)字符串
14 、replace() 替換
它有兩種形式,第一種形式用一個(gè)字符在調(diào)用字符串中所有出現(xiàn)某個(gè)字符的地方進(jìn)行替換,形式如下:
String replace(char original,char replacement)
例如:String s="Hello".replace('l','w');
第二種形式是用一個(gè)字符序列替換另一個(gè)字符序列,形式如下:
String replace(CharSequence original,CharSequence replacement)
15、trim() 去掉起始和結(jié)尾的空格
16、valueOf() 轉(zhuǎn)換為字符串
17、toLowerCase() 轉(zhuǎn)換為小寫
18、toUpperCase() 轉(zhuǎn)換為大寫
19、StringBuffer構(gòu)造函數(shù)
StringBuffer定義了三個(gè)構(gòu)造函數(shù):
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
StringBuffer(CharSequence chars)
(1)、length()和capacity()
一個(gè)StringBuffer當(dāng)前長(zhǎng)度可通過length()方法得到,而整個(gè)可分配空間通過capacity()方法得到。
(2)、ensureCapacity() 設(shè)置緩沖區(qū)的大小
void ensureCapacity(int capacity)
(3)、setLength() 設(shè)置緩沖區(qū)的長(zhǎng)度
void setLength(int len)
(4)、charAt()和setCharAt()
char charAt(int where)
void setCharAt(int where,char ch)
(5)、getChars()
void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
(6)、append() 可把任何類型數(shù)據(jù)的字符串表示連接到調(diào)用的StringBuffer對(duì)象的末尾。
例:int a=42;
StringBuffer sb=new StringBuffer(40);
String s=sb.append("a=").append(a).append("!").toString();
(7)、insert() 插入字符串
StringBuffer insert(int index,String str)
StringBuffer insert(int index,char ch)
StringBuffer insert(int index,Object obj)
index指定將字符串插入到StringBuffer對(duì)象中的位置的下標(biāo)。
(8)、reverse() 顛倒StringBuffer對(duì)象中的字符
StringBuffer reverse()
(9)、delete()和deleteCharAt() 刪除字符
StringBuffer delete(int startIndex,int endIndex)
StringBuffer deleteCharAt(int loc)
(10)、replace() 替換
StringBuffer replace(int startIndex,int endIndex,String str)
(11)、substring() 截取子串
String substring(int startIndex)
String substring(int startIndex,int endIndex)
?
(12)對(duì)正反斜杠的截取
?
java中split的應(yīng)用:
Java中的 split ?函數(shù)是用于按指定字符(串)或正則去分割某個(gè)字符串,結(jié)果以字符串?dāng)?shù)組形式返回;
例如:
?
[java]?view plaincopy
對(duì)于分割的字符(串),通常是常見,普通的,沒什么問題;
但是對(duì)某些特殊字符,如果字符(串)正好是正則的一部分,則需要轉(zhuǎn)義才能使用,
這些字符有?| , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \等, 因它們是正則表達(dá)式中的一部分, 所以如果想用該字符本身, 這些字符需要進(jìn)行轉(zhuǎn)義才能表示它本身;
例如:?
?
想用 | 豎線去分割某字符,因 | 本身是正則表達(dá)式中的一部分,所以需要 \ 去轉(zhuǎn)義,因轉(zhuǎn)義使用 \, 而這個(gè) \ 正好也是正則表達(dá)式的字符,所以還得用一個(gè) \ , 所以需要兩個(gè) \\。
?
[java]?view plaincopy再來(lái)看看:
?
[java]?view plaincopy
可能我們?nèi)藶橹饔^感覺是用 | 來(lái)分割希望得到 5678 和 XYZ,因用特殊字符,實(shí)際結(jié)果是得到意外的結(jié)果;
?
?
今天下午就這個(gè)地方耗了幾個(gè)小時(shí),頭暈才發(fā)現(xiàn)問題所在,555....
?
所以指定分割的字符(串)時(shí),最好不要包含用于正則表達(dá)式本身的字符,如上面的紅色字符;
?
轉(zhuǎn)載于:https://www.cnblogs.com/fengli9998/p/7147158.html
總結(jié)
以上是生活随笔為你收集整理的java中截取字符串的方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何进行软件测试需求分析
- 下一篇: 负载均衡之总结篇