亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

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

字符串到數(shù)字的轉(zhuǎn)換
    atoi函數(shù)獲取一個C字符串參數(shù),返回對應(yīng)的int值。如果參數(shù)不與一個int值對應(yīng),atoi就會返回0。atoi函數(shù)在文件為cstdlib的庫中。如果數(shù)字太大,不能轉(zhuǎn)換成int類型的值,可以使用atol將字符串轉(zhuǎn)換為long類型的值。
   例如:
    atoi("1234");   //返回整數(shù)1234
    atoi("#123");   //返回0
   C++中字符串的常用方法就不一一介紹,介紹幾個常用的:begin(),end(),append(),等等。
  2:JAVA中的字符串:在JAVA中,String不屬于8中基本類型,所以String是對象,默認值是null
 例如:String str = new String(); 和String str =  new String("");是一個意思,就是構(gòu)造一個空字符串,(理解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中 == 是對地址的比較,而equals是對內(nèi)容的比較,為什么地址不一樣呢?
先引入常量池的概念:

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

  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會確保一個字符串常量只有一個拷貝。

因為例子中的str3和str4中的"zhangpeng"都是字符串常量,它們在編譯期就被確定了,所以str3==str4為true;而"zhang"和"peng"也都是字符串常量,當(dāng)一個字符串由多個字符串常量連接而成時,它自己肯定也是字符串常量,所以str2也同樣在編譯期就被解析為一個字符串常量,所以str2也是常量池中"zhangpeng"的一個引用。

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

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

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

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

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
精品一区中文字幕| 午夜一区在线观看| 91短视频在线| 国产ts丝袜人妖系列视频| 2018日韩中文字幕| 爽成人777777婷婷| 最新成人av在线| 久久久久久欧美精品色一二三四| 2018国产在线| 欧美一区二区视频网站| 亚洲免费av网| 狠狠综合久久av一区二区| 国产精品免费观看在线| 99精品国产99久久久久久97| japan乱配videos老少配| 精品久久久久久久免费人妻| 色屁屁影院www国产高清麻豆| 国内老司机av在线| 欧美日韩国产页| japansex久久高清精品| 日本我和搜子同居的日子高清在线| 欧美大片在线免费观看| 蜜桃视频一区二区在线观看| 99re6热在线精品视频播放| 视频一区欧美精品| 丰满的少妇愉情hd高清果冻传媒| 色综合中文字幕| 青草成人免费视频| 中文字幕中文字幕中文字幕亚洲无线| 久久久国产精品人人片| 欧美一级精品在线| 亚洲精品少妇30p| 国产精品久久久久久影视| 欧美人一级淫片a免费播放| 国产精品国产三级国产专业不| 伊人影院在线观看视频| 大桥未久在线视频| 日韩亚洲成人av在线| 欧美在线免费看视频| 日韩欧美精品三级| 日韩中文一区二区| 免费黄色影片在线| 欧美69wwwcom| 亚洲影视在线观看| 欧美精品18videos性欧美| 久久亚洲春色中文字幕久久久| 国产成人小视频在线观看| 免费操人视频| 91免费精品国偷自产在线在线| 男人添女人下部高潮视频在线观看| 日韩一区二区在线观看| 欧美三级电影网址| 亚洲二区三区四区| 热久久国产精品| 欧美黑人视频一区| 自拍偷拍视频亚洲| 欧美日韩精品一区二区三区蜜桃| 中文字幕xxxx| 雨宫琴音一区二区在线| 色偷偷777| 97在线视频观看| 免费亚洲婷婷| 69国产精品视频| 亚洲国产网站| 美女国内精品自产拍在线播放| 亚洲第一天堂av| 国产日韩视频一区二区三区| 另类视频一区二区三区| 国产在线视频精品一区| 不卡中文字幕| 国产成人综合美国十次| 国产精品538一区二区在线| 亚洲日韩欧美一区二区在线| 国产成人无码精品久久久性色| 亚洲自拍偷拍一区二区三区| 九九热精品在线| 国产精欧美一区二区三区白种人| 男人天堂网页| 国产亚洲精品自在线观看| 国产精品中文字幕亚洲欧美| 亚洲女同精品视频| 中文字幕激情小说| 777免费视频| 97**国产露脸精品国产| 激情se五月| 亚洲人成午夜免电影费观看| 浪潮av在线| 韩国精品久久久| 亚洲色图综合久久| 一区二区精品在线观看| 国产精品一区二区免费在线观看| 欧美日韩中文字幕综合视频| 欧美日韩在线观看一区二区三区| 在线看一级片| 免费在线黄色网| 九九精品在线| 欧美午夜www高清视频| 成人全视频在线观看在线播放高清| av片在线免费| 日韩精品免费在线观看| 91精品福利视频| 天堂综合在线播放| 久久久久久九九九九九| 日韩精品91亚洲二区在线观看| 精品国产aⅴ麻豆| 开心久久婷婷综合中文字幕| 免费成人在线观看视频| 麻豆精品精品国产自在97香蕉| 欧美日韩另类国产亚洲欧美一级| 精品国产亚洲av麻豆| 你懂的视频在线一区二区| 国模私拍一区二区国模曼安| 激情欧美一区二区| 国产小视频在线免费观看| 日韩a在线观看| 国产又粗又爽视频| 九九视频免费看| 亚洲国产精品久久久久久女王| 极度色播免费播放视频| 精品999日本| www.久久视频| 国内不卡一区二区三区| 在线观看亚洲视频啊啊啊啊| 欧美综合二区| 久久亚洲综合av| 国产污污在线观看| 精品粉嫩超白一线天av| 天天干天天操天天干天天操| 欧美韩国日本精品一区二区三区| 香蕉视频久久久| 国产一级又黄| 四虎影院成人在线观看| 无码人妻丰满熟妇区毛片18| 黑森林国产精品av| 国产精品视频网站| 久久影院在线观看| 911精品美国片911久久久| 欧美aaaaa成人免费观看视频| 国产欧美亚洲视频| 九一在线视频| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲国产av一区二区三区| 黑人巨大精品欧美一区二区桃花岛| 欧美一区午夜视频在线观看| 国产色综合久久| 亚洲欧美激情另类校园| 国产精品剧情在线亚洲| 亚洲成人自拍| 国产精品久久久久久久妇| 欧美精品二区| 茄子视频成人在线| 亚洲国产天堂av| 美女污污网站| 免费成人小视频| 不卡av电影院| 奇米综合一区二区三区精品视频| 91av在线免费观看视频| 国产66精品久久久久999小说| 视频在线不卡| 先锋av资源色| 亚洲va久久久噜噜噜久久天堂| 国产一区二中文字幕在线看| 激情综合中文娱乐网| 色呦呦一区二区| 国产一区在线看| 中文字幕永久在线| 狠狠97人人婷婷五月| 欧美三级美国一级| 精品久久网站| 国产又粗又黄又猛| 特级丰满少妇一级aaaa爱毛片| 免费全黄无遮挡裸体毛片| 日产福利视频在线观看| 亚洲天堂久久久久| 久久av一区二区三区亚洲| 欧美日韩在线三区| 国产欧美欧洲在线观看| 日韩久久中文字幕| 国产精品91一区二区| 国产成人精品影院| 成年人视频网站免费观看| 中文字幕av一区 二区| 97成人在线观看| 欧美激情在线狂野欧美精品| 久久国产精品精品国产色婷婷| 黄色网页在线观看| 在线亚洲一区二区| 久久伦理在线| 国产在线色视频| 九九热只有这里有精品| 乱码第一页成人| 91精品国产91久久综合| 国产精品免费一区二区三区| 在线观影网站| 怡红院av亚洲一区二区三区h| 四虎影视在线观看2413| 欧美色视频日本版| 奇米色777欧美一区二区| 在线观看免费视频你懂的| 影音先锋中文字幕在线| 日韩欧美视频免费在线观看| 欧美区亚洲区| 国产午夜手机精彩视频| 777a∨成人精品桃花网| 欧美一卡2卡三卡4卡5免费| 中国xxxx自拍视频| 精油按摩中文字幕久久| 91丨九色porny丨蝌蚪| 精品一区二区免费在线观看| 欧美日韩电影在线播放| 精品视频在线观看网站| 波多野结衣一区二区三区四区| 日韩久久午夜影院| 国产性一乱一性一伧一色| 在线免费看黄色| 成人在线电影在线观看视频| 精品久久久香蕉免费精品视频| 日本黄色激情视频| 欧美日韩精品一区二区三区视频播放| 杨幂一区二区国产精品| 午夜视频在线观看韩国| 国产精品视频一区视频二区| 亚洲图片在线视频| 国产欧美一区二区三区久久人妖| xxx视频在线观看| 国产成人av福利| 性生交免费视频| av观看成片免费网站| 1区2区视频| 美日韩丰满少妇在线观看| 亚洲美女精品久久| 四虎影院在线播放| 久草热视频在线观看| 成人毛片免费在线观看| x88av蜜桃臀一区二区| 日韩中文字幕在线不卡| 97精品国产综合久久久动漫日韩| 久久丫精品忘忧草西安产品| 色婷婷av久久久久久久| av黄色一级片| 五月婷婷狠狠干| 日韩欧美国产骚| 999精彩视频| 你懂的在线观看视频网站| 欧美高清videos高潮hd| 嫩草av久久伊人妇女超级a| 被灌满精子的波多野结衣| 亚洲中文一区二区三区| 欧美下载看逼逼| 亚洲成人三区| 午夜视频在线瓜伦| 成人免费观看在线观看| 99精品中文字幕| 99精品国产99久久久久久白柏| 欧亚洲嫩模精品一区三区| 青青色在线视频| 国产伦精品一区二区三区免费视频| 在线成人国产| 一区二区三区入口| 欧美日韩在线第一页| 九九热免费在线观看| 性少妇videosexfreexxx片| 国产欧美一区二区三区在线看| 蜜桃一区二区三区四区| 成人有码在线视频| 日韩精选在线观看| 国产精品69久久久久水密桃| av成人午夜| 亚洲变态欧美另类捆绑| 亚洲国产精品va在线看黑人| 免费精品视频一区| 国产视频www| 天堂网avav| 亚洲精品视频中文字幕| 91在线公开视频| 在线视频中文字幕第一页| 在线视频福利一区| 久久综合99re88久久爱| 亚洲一线在线观看| 高清一区二区三区av| 久久.com| 日韩中文字幕在线精品| 色老板免费视频| 裸体丰满少妇做受久久99精品| 日韩精品av一区二区三区| 在线免费观看av影视天堂| 三级毛片电影网站| 欧美一区二区大片| 欧美黄色aaa| 黄色一级片免费播放| 夜夜夜夜夜夜操| 69av成年福利视频| 成人深夜福利app| 99久久亚洲一区二区三区青草| 国产香蕉精品视频一区二区三区| 亚洲欧美日韩在线综合| 日本成人中文字幕在线| 欧美一级国产精品| 91在线免费播放| 日本午夜在线视频| 欧美成人精品高清在线播放| l8videosex性欧美69| 96视频在线观看欧美| 日韩在线视频导航| 日日噜噜噜噜夜夜爽亚洲精品| 欧美性aaa| 国产精品综合在线视频| 亚洲国产成人精品综合99| 爽爽视频在线观看| 一本一道久久a久久精品| 日韩久久一区| 欧美视频一区二区三区…| 欧美野外wwwxxx| 午夜在线电影亚洲一区| 日韩伦理av| 国产精品免费精品一区| 91九色精品视频| 色阁综合伊人av| 亚洲xxx自由成熟| 女生裸体无遮挡天堂网站免费| 在线视频中文字幕第一页| 美女扒开腿让男人桶爽久久软| 欧美一区二区三区在线视频| 日韩国产在线观看一区| 欧洲成人免费视频| 欧美自拍电影| 亚洲日韩中文字幕在线播放| 超级碰碰视频|