国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 編程 > C++ > 正文

深入解析C++和JAVA的字符串

2020-05-23 14:17:00
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C++和JAVA的字符串,JAVA 中String 和StringBuffer的區(qū)別,需要的朋友可以參考下
 

所有的字符串類都起源于C語言的字符串,而C語言字符串則是字符的數(shù)組。C語言中是沒有字符串的,只有字符數(shù)組。
談一下C++的字符串:C++提供兩種字符串的表示:C風(fēng)格的字符串和標(biāo)準(zhǔn)C++引入的string類型。一般建議用string類型,但是實(shí)際情況中還是要使用老式C風(fēng)格的字符串。
1.C風(fēng)格的字符串:C風(fēng)格字符串起源于C,并在C++中得到擴(kuò)展。字符串存儲(chǔ)在一個(gè)字符數(shù)組中,例如:
       const char *str = “zhangdan”;(不要忘掉最后的/0)
       這里用常量字符數(shù)組來表示字符串。操作字符串的時(shí)候只要操作指針就可以了。如 :
       const char * str = "zhangdan";  const char *p = str; 然后對(duì)p進(jìn)行操作就可以了。
2.標(biāo)準(zhǔn)C++的string類型:如果用的話首先要引入頭文件:#include<string>
       在C++中提供的標(biāo)準(zhǔn)字符串類型提供了以下操作:
      (1).支持用字符序列或者第二個(gè)字符串去初始化一個(gè)字符串對(duì)象。C風(fēng)格的字符串不支持用另外一個(gè)字符串初始化另外一個(gè)字符串。
      (2).支持字符串之間的copy,C風(fēng)格字符串通過strcpy()函數(shù)來實(shí)現(xiàn)。
      (3).支持讀寫訪問單個(gè)字符。對(duì)于C風(fēng)格的字符串,只有解除引用或者通過下標(biāo)操作才能訪問單個(gè)字符。
      (4).支持兩個(gè)字符串相等比較,對(duì)于C風(fēng)格的字符串,比較是通過strcmp()函數(shù)來實(shí)現(xiàn)的。
      (5).支持兩個(gè)字符串連接,對(duì)于C風(fēng)格的字符串用strcpy() 函數(shù)copy到一個(gè)新的實(shí)例中,然后用strcat()把兩個(gè)字符串接起來。如:
       string str1 = "111111", str2 = "222222";
       string str3 = str1 + str2;
      (6).支持對(duì)字符串長(zhǎng)度的查詢:string s ("XXXXXXX"); str.size() 為字符串的長(zhǎng)度。
     相互轉(zhuǎn)換:const char * str = str2.c_str(); //不可把字符串類型直接賦給字符數(shù)組,但是可以吧一個(gè)字符數(shù)組賦給一個(gè)字符串類型:如:const char *str = "zhangdan"; string str2 = str;
   

C++ string類的輸入
    (1)方法一:和C字符串輸入的方法一相同。
    (2)方法二:使用getline函數(shù)。
    例如:string a;
   getline(cin,a);
  

字符串到數(shù)字的轉(zhuǎn)換
    atoi函數(shù)獲取一個(gè)C字符串參數(shù),返回對(duì)應(yīng)的int值。如果參數(shù)不與一個(gè)int值對(duì)應(yīng),atoi就會(huì)返回0。atoi函數(shù)在文件為cstdlib的庫(kù)中。如果數(shù)字太大,不能轉(zhuǎn)換成int類型的值,可以使用atol將字符串轉(zhuǎn)換為long類型的值。
   例如:
    atoi("1234");   //返回整數(shù)1234
    atoi("#123");   //返回0
   C++中字符串的常用方法就不一一介紹,介紹幾個(gè)常用的:begin(),end(),append(),等等。
  2:JAVA中的字符串:在JAVA中,String不屬于8中基本類型,所以String是對(duì)象,默認(rèn)值是null
 例如:String str = new String(); 和String str =  new String("");是一個(gè)意思,就是構(gòu)造一個(gè)空字符串,(理解null和""的區(qū)別)。
        看下面這段代碼: 
 

  1. String str = "xxx";  
  2. String str2 = new String("xxx"); 
  3. System.out.println(str == str2); 
  4. System.out.println(str.equals(str2));  
?

結(jié)果是:
false
true

為什么呢? 在JAVA中 == 是對(duì)地址的比較,而equals是對(duì)內(nèi)容的比較,為什么地址不一樣呢?
先引入常量池的概念:

常量池(constant pool)指的是在編譯期被確定,并被保存在已編譯的.class文件中的一些數(shù)據(jù)。它包括了關(guān)于類、方法、接口等中的常量,也包括字符串常量。
當(dāng)我們將一個(gè)字符串賦給一個(gè)字符串變量的時(shí)候,如String str = "xxxx"; 這時(shí)候,先去常量池中找有沒有"xxxx"的字符串拷貝,如果有的話,把str的地址指向常量池中字符串常量"xxxx"的地址,如果沒有則在常量池中建立"xxxx"的字符串常量。而 new String("xxxx")是放在堆內(nèi)存中,有自己的內(nèi)存空間。所以地址比較的時(shí)候不一樣。
看下面一段代碼: 
 

  1. String str = "zhang";  
  2. String str2 = "peng";  
  3. String str3 = "zhangpeng";  
  4. String str4 = "zhangpeng" 
  5. str += str2;  
  6. System.out.println(str == str3);  
  7. System.out.println(str3 == str4) 
?

結(jié)果為:
true
true

為什么呢?
首先,我們要知道Java會(huì)確保一個(gè)字符串常量只有一個(gè)拷貝。

因?yàn)槔又械膕tr3和str4中的"zhangpeng"都是字符串常量,它們?cè)诰幾g期就被確定了,所以str3==str4為true;而"zhang"和"peng"也都是字符串常量,當(dāng)一個(gè)字符串由多個(gè)字符串常量連接而成時(shí),它自己肯定也是字符串常量,所以str2也同樣在編譯期就被解析為一個(gè)字符串常量,所以str2也是常量池中"zhangpeng"的一個(gè)引用。

JAVA 中String 和StringBuffer的區(qū)別:

String:
是對(duì)象不是原始類型.
為不可變對(duì)象,一旦被創(chuàng)建,就不能修改它的值.
對(duì)于已經(jīng)存在的String對(duì)象的修改都是重新創(chuàng)建一個(gè)新的對(duì)象,然后把新的值保存進(jìn)去.
String 是final類,即不能被繼承.
StringBuffer:
是一個(gè)可變對(duì)象,當(dāng)對(duì)他進(jìn)行修改的時(shí)候不會(huì)像String那樣重新建立對(duì)象
它只能通過構(gòu)造函數(shù)來建立,
StringBuffer sb = new StringBuffer();
不能通過付值符號(hào)對(duì)他進(jìn)行付值. 
sb = "xxxxx";
對(duì)象被建立以后,在內(nèi)存中就會(huì)分配內(nèi)存空間,并初始保存一個(gè)null.向StringBuffer
中付值的時(shí)候可以通過它的append方法.
sb.append("hello");
字符串連接操作中StringBuffer的效率要比String高:
String str = new String("xxx");
str += "xx";
的處理步驟實(shí)際上是通過建立一個(gè)StringBuffer,然后調(diào)用append(),最后
再將StringBuffer toSting();
這樣的話String的連接操作就比StringBuffer多出了一些附加操作,所以就慢了

問一個(gè)問題:為什么StringBuffer效率這么高,那么我們還要String呢?
不會(huì)的查一下吧,方向是常量池。

Python 字符串:
Python是一種強(qiáng)大的腳本語言,它定義字符串的時(shí)候不用定義類型。python字符串通常有單引號(hào)('...')、雙引號(hào)("...")、三引號(hào)("""...""")或('''...''')包圍,三引號(hào)包含的字符串可由多行組成,一般可表示大段的敘述性字符串。在使用時(shí)基本沒有差別,但雙引號(hào)和三引號(hào)("""...""")中可以包含單引號(hào),三引號(hào) ('''...''')可以包含雙引號(hào),而不需要轉(zhuǎn)義。當(dāng)需要特殊轉(zhuǎn)義的時(shí)候可以用 '/'
python 也有很多字符串操作的函數(shù)。具體可以dir一把,跟C++和java都是大同小異的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
www在线播放| 日本三级视频网站| 国产无遮挡又黄又爽免费网站 | 国产福利免费在线观看| 中文字幕亚洲精品视频| 国产精品免费视频二三区| 国产porn在线| av激情在线| 最近中文字幕av免费高清| 国产视频青青| www.操.com| 国产午夜电影| 免费观看v片在线观看| 天堂在线一二区| 尤物视频在线观看视频| 国产在线一区二区视频| 国产91在线视频蝌蚪| 91午夜视频| 成年女人在线视频| 97操碰视频| 国产视频中文字幕在线观看| 在线视频色在线| 国产中文字幕在线视频| 国产高清在线看| 国产原创av在线| 四虎成人免费| 精品久久九九| 国产精品免费视频二三区| 久久av少妇| jizz一区二区三区| 精品视频一二区| 国产大学生粉嫩无套流白浆| 啪啪免费视频一区| 中文在线官网天堂| 国产天堂素人系列在线视频| 国产男女猛烈无遮挡免费视频| 91在线最新| 99热免费观看| 在线中文资源天堂| 伊人精品影院| 亚洲最新永久观看在线| 国产馆av播放| 中文字幕av网| av手机免费观看| 亚洲欧美久久婷婷爱综合一区天堂| 国产裸舞福利在线视频合集 | 免费三级毛片| www.夜夜操| 欧美成人久久电影香蕉| 欧美黑人乱大交ⅹxxxxx| 免费视频中文字幕| 成人精品福利| 国产精品久久麻豆| 国产激情二区| 四虎成人精品在永久在线观看| 国产成在线观看免费视频| 国产精品666| av中文天堂在线| 老鸭窝av在线| 国产三级视频在线看| 2021天堂中文幕一二区在线观| 69免费视频| 日日夜夜中文字幕| 国产女人在线视频| 国产成人综合亚洲欧美在| free性亚洲| 中文字幕国产视频| 精品街拍一区二区| 九色视频网站| 国产黄色免费网站| 开心激情五月婷婷| 18av在线播放| 国产精品一区二三区| 99热免费观看| 尤物视频在线观看| 亚洲高清在线免费| 黄色av电影在线播放| 国产一二区在线观看| 亚洲综合在线不卡| 国产一级二级三级在线观看| av免费在线观| 精品成人免费自拍视频| 尤物网在线观看| 欧美日韩性视频一区二区三区| 国产精品视频福利一区二区| 九九热在线免费视频| 精品国内自产拍在线视频| 99热最新网址| 国产精品外围在线观看| 色中文字幕在线| av在线中文| 国产成人天天5g影院| 国产中文字幕网| av网址在线看| 伊人网站在线| av在线播放国产| 在线一区二区三区精品| 2019年中文字幕| 136福利第一导航国产在线| 国产一级二级在线| 国产美女高潮| 国产精选在线视频拍拍拍| 国产在线三区| 中文字幕在线观看av| 五月天丁香在线| 国产一二区在线观看| 丁香花高清视频完整版在线观看| av在线播放网| 国产在线激情视频| 日本中文字幕视频在线| 国产美女av在线| 国产高清自拍视频在线观看 | 国产精彩视频在线观看免费蜜芽| 天堂中文字幕在线| 国产色a在线| 99热国产在线| 免费在线播放av| 国产一卡2卡3卡四卡网站| 国产午夜在线视频| av大片在线播放| 樱花草在线观看www| 欧美日韩亚洲国内综合网| 国产毛片毛片| 国产成人综合美国十次| 青青艹在线视频| 中文字幕在线观看av| 亚洲欧洲成人| 中文字幕在线免费| www.色婷婷| 中文岛国精品亚洲一区| 非洲黑人最猛性xxxx交| 国产网红在线| 麻豆精品传媒视频观看| 国产极品美女到高潮| 亚洲www色| 国产免费专区| 夜夜爽视频导航| 国产色视频网站| 国产在线高清理伦片a| 中文av资源在线| 国产欧美日韩第一页| 超碰免费在线| 在线观看中文字幕的网站| 中文字幕视频在线观看| 本道综合精品| 亚洲网站视频在线观看| 国产一级性片| 成网站在线观看人免费| 青青草原av在线| 天堂√中文在线| 国产精品久久久久久久久鸭| 国产尤物视频| 青青草原国产在线观看| 在线国产福利网站| 国产porny蝌蚪视频| 国产福利片在线| 国产黄色免费在线观看| 国产网友自拍视频导航网站在线观看| 欧美日韩亚洲国内综合网| av高清在线| av一本在线| 三级小说一区| 欧美视频免费一区二区三区| 轻轻色免费在线视频| 免费男女羞羞的视频网站中文字幕| 精品国产福利一区二区在线| 国产成人精品18| 精品美女在线观看视频在线观看 | 国产网红在线| 国产精品久久在线| 91av福利| 日韩中文字幕久久久经典网| 在线看黄色av| 日本在线观看| 国产原创在线播放| 国产亚洲精品自在线观看| 91caoporn在线| 国产高清免费在线播放| 亚洲精品视频区| 九九精品九九| 国产素人视频在线观看| 国产精品69一区二区三区| 伊人影院在线视频| 久久综合精品视频| 国产福利片在线| 日韩黄色成人| 国产视频福利| 亚洲免费国产| 成人欧美亚洲| 97最新国自产拍视频在线完整在线看| 日本三级视频网站| 国产黄大片在线观看画质优化| 亚洲电影先锋| 最新中文字幕在线| 日本福利在线| 51成人精品网站| 尤物视频网站在线观看| www.超级碰| 一区二区三区四区在线免费视频| 国产69精品久久久久孕妇国产69久久 |