C 字串是不可變的

2021-09-29 00:20:39 字數 770 閱讀 2409

string型別的關鍵特徵是在於它是不可變的(immutable)。可以為string變數賦乙個全新的值,但出於效能方面考慮,沒有提供修改字串內容的機制。所以不可能將字串中的字幕全部轉換為大寫。只能新建字串,讓它成為舊字串的大寫字母版本,但舊字串在這個過程中不會被修改。

**1:錯誤,string是不可改變的

static void main(string args)

輸出1:this is a text

從表面上看,text.toupper()似乎應該將text中的字元轉換成大寫。但由於string型別是不可變的,所以text.toupper()不會進行這樣的修改。相反,text.toupper()會返回乙個新字串,它需要儲存到變數中,或者直接傳給system.console.writeline()。

**2

static void main(string args)

輸出2:this is a text

假如忘記字串不可變的特點,很容易就會在使用其他字串方法時犯下和**1相似的錯誤。為了真正更改text中的值,要將toupper()的返回值賦回給text, 如下例所示:text = text.toupper();

system.text.stringbuilder

字串 可變字串與不可變字串

一 nsstring 是不可變字串,所有它所有產生其他字串方法都是生成乙個新的字串,而不會改變原來字串 第一種 字面量 它是常量字串,儲存常量區 nsstring str abc 第二種是通過 快捷的構造方法 nsstring stringwithformat 第三種方式 初始化方法 nsstrin...

字串的不可變性

字串的不可變性,從字面的意思上理解,這個 不可變 視乎是不成立的。通過賦值操作我們發現我們可以更改字串變數的值,這種改變並不能推翻 字串不可變性 中的不可變。也就是說字串變化並不指的是賦值這種變化。通過字串型別和值型別在記憶體中的儲存方式對比看看,字串中的不可變到底指的是什麼?值型別 字串 不可變性...

C 不可變字串String的常用方法

不可變字串類string常用方法 1.string.contains string 是否包含另一字元 string str5 今天天氣不錯呦 debug.log str5.contains 天氣 2.string.indexof string 找到乙個字串在當前字串中的位置 string str1 ...