String類(lèi)使用""進(jìn)行定義,可以利用+ 實(shí)現(xiàn)字符串的連接,
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)柴桑,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108String類(lèi)簡(jiǎn)介:字符串嚴(yán)格來(lái)說(shuō)不算是一個(gè)基本數(shù)據(jù)類(lèi)型,Java之中為了方便開(kāi)發(fā),利用JVM支持制造了可以簡(jiǎn)單使用的String類(lèi),可以像基本數(shù)據(jù)類(lèi)型賦值處理。
String類(lèi)之中之所以可以保存字符串主要是定義了一個(gè)數(shù)組,String里所有的字符串每一個(gè)字符數(shù)據(jù)保存了數(shù)組之中。jdk1.8之前String支持類(lèi),采用字符數(shù)組,之后為字節(jié)數(shù)組。
String字符串比較:可以==判斷,只不過(guò)判斷的不是內(nèi)容,而是地址。
如果想要進(jìn)行String字符串內(nèi)容判斷,使用String類(lèi)提供的一個(gè)方法
字符串比較(有變形):public loolean equals(String str)
String比較中==與equals()區(qū)別?
==進(jìn)行的是數(shù)值比較,如果用于對(duì)象比較上比較的是兩個(gè)內(nèi)存的地址數(shù)值
而equals()是類(lèi)中所提供的一個(gè)方法,可以直接比較字符串內(nèi)容。
字符串常量是String類(lèi)的匿名對(duì)象:public static void main(String args[])
{
String input = null;
System.out.print("qwe".equals(input));
}
}
equals()方法中提供一個(gè)回避null的判斷,將字符串常量寫(xiě)在前面防止出現(xiàn)”NullPointException“,字符串是一個(gè)匿名對(duì)象,匿名對(duì)象一定是堆內(nèi)存開(kāi)辟出空間的對(duì)象。
構(gòu)造方法實(shí)例化對(duì)象實(shí)際上是屬于一種自己的專(zhuān)用的內(nèi)存空間,在String類(lèi)中有手動(dòng)入池,這個(gè)方法public String intern();
public static void main(String args[]) { String strA = "mn"; String strB = new String ("mn").intern(); System.out.print(strA == strB);
加入intern()的方法,所以使用構(gòu)造出來(lái)堆String類(lèi)對(duì)象的內(nèi)容也可以實(shí)現(xiàn)對(duì)象池的統(tǒng)一管理。但是做法啰嗦;
請(qǐng)解釋String兩種實(shí)例化方式區(qū)別;
直接賦值:只會(huì)產(chǎn)生一個(gè)實(shí)例化對(duì)象,并且可以自動(dòng)保存到對(duì)象池當(dāng)中。以實(shí)現(xiàn)該字符串實(shí)列的重用,
構(gòu)造方法:會(huì)產(chǎn)生兩個(gè)實(shí)列化對(duì)象,并且不會(huì)直接入池,可以使用intern()方法手工入池處理。
String對(duì)象池:對(duì)象池的主要目的實(shí)現(xiàn)數(shù)據(jù)的共享處理,以String對(duì)象池為列,里面的內(nèi)容主要是為了重用,重用的處理是為共享設(shè)計(jì)。
在Java中對(duì)象池可以分為兩種:
靜態(tài)對(duì)象池:指的是(*.class)在加載的時(shí)候會(huì)自動(dòng)將此程序之中的保存的字符串,普通的常量,類(lèi)和方法的信息等等,全部進(jìn)行分配;
運(yùn)行時(shí)常量池:里面可能有一些變量,這個(gè)時(shí)候提供的常量池。
public class StringDemo {
public static void main(String args[])
{
String strA = "wh";
String strB = "w" + "h";
System.out.print(strA == strB);
}
}
本程序之中給出的內(nèi)容全部都是常量數(shù)據(jù)(字符串的常量都是匿名對(duì)象)所以直接做好相應(yīng)的連接。
public static void main(String args[])
{
String info = "wh";
String strA = "wwh";
String strB = "w" + info;
System.out.print(strA == strB);
}
}
這個(gè)時(shí)候是false,因?yàn)槌绦蚣虞d的時(shí)候不確定info是什么內(nèi)容,因?yàn)樽址B接時(shí)info是一個(gè)變量,所以不認(rèn)為strB結(jié)果就是最終的結(jié)果。
字符串與字符數(shù)組:字符串的基本組成單元是字符,在String類(lèi)種提供兩者轉(zhuǎn)換方法。
構(gòu)造方法public String(char【】value) 將傳入的全部字符數(shù)組變?yōu)樽址?/p>
構(gòu)造方法public String(char【】value,int offset,int count)將部分字符數(shù)組變?yōu)樽址?/p>
普通方法public char charAt(int index)獲取指定索引位置的字符。
普通方法public char【】toCharArray()將字符串中的數(shù)據(jù)以字符數(shù)組的形式返回。
String str = "wangbuer";
char c = str.charAt(7);
System.out.println(c);
}
}
public static void main(String args[])
{
String str = "wangbuer";
char[] result = str.toCharArray();
for (int x = 0; x< result.length;x++)
{
result[x] -= 32;
}
String newStr = new String(result);
System.out.println(newStr);
System.out.println( new String (result,0,4));
}
}
字符串與字節(jié):
構(gòu)造方法 public String(byte【】 bytes)將全部字節(jié)數(shù)組變?yōu)樽址?/p>
構(gòu)造方法 public String(byte【】 bytes,int offset,int length)
普通方法 public byte【】 getBytes()將字符串轉(zhuǎn)為字符數(shù)組
普通方法: public byte【】 getBytes(String charsetName) throws UnsupportedEncodingException編碼轉(zhuǎn)換。????????
public static void main(String args[])
{
String str = "wangbuer";
byte data[] = str.getBytes();
System.out.println(data);
}
字符串比較:{
String str = "wang";
System.out.println("WANG".equals(str));//區(qū)分大小寫(xiě)比較
System.out.println("WANG".equalsIgnoreCase(str));//不區(qū)分大小寫(xiě)。
}
compareTo()進(jìn)行大小寫(xiě)比較
compaerToIgnoreCase()忽略大小寫(xiě)
public static void main(String args[])
{
String strA = "wang";
String strB = "WANG";
System.out.println(strA.compareTo(strB));//區(qū)分大小寫(xiě)比較
System.out.println(strB.compareToIgnoreCase(strA));//不區(qū)分大小寫(xiě)。
}
}
字符串查找從一個(gè)完整的字符串之中查找子字符串的存在就屬于字符串的查找操作,在String類(lèi)里面一共提供如下方法:
public public boolean contains(String s) 普通方法 判斷子字符串是否存在
public static void main(String args[])
{
String str = "www.baidu.com";
System.out.println(str.contains("w"));//true
System.out.println(str.contains("aom"));//false
}
}
contains jdk1.5之后有的功能
public int intdexOf(String str) 普通方法 從頭查找指定字符串的位置,找不到返回-1;
public class StringDemo {
public static void main(String args[])
{
String str = "www.baidu.com";
System.out.println(str.indexOf("w"));//0
System.out.println(str.indexOf("aom"));//-1
if(str.indexOf("w") != -1)
{
System.out.println("數(shù)據(jù)存在");
}
}
}
indexOf開(kāi)始是為了進(jìn)行位置的查詢(xún),是由前查找的。
lastIndexOf是由后向前查找。
String str = "www.baidu.com";
System.out.println(str.lastIndexOf("w"));//2
判斷是否以指定字符串開(kāi)頭或者結(jié)尾:
String str = "**@@www.baidu.com##";
System.out.println(str.startsWith("*",1));//從第二個(gè)判斷
System.out.println(str.endsWith("#"));
字符串替換public static void main(String args[])
{
String str = "www.bay.com";
System.out.println(str.replaceAll("w", "a"));//替換全部
System.out.println(str.replaceFirst("w", "a"));//替換首個(gè)
}
}
字符串拆分public static void main(String args[])
{
String str = "張三:20|李四:29|王五:19";
String result[] = str.split("\\|");
for(int x = 0;x< result.length;x++) {
String temp[] = result[x].split(":");
System.out.println("姓名:" +temp[0] + "年齡:" + temp[1]);
}
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁(yè)名稱(chēng):String類(lèi)-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://m.rwnh.cn/article24/pojce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、小程序開(kāi)發(fā)、企業(yè)建站、網(wǎng)頁(yè)設(shè)計(jì)公司、外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容