c 入門 string型別的常用方法

2021-10-13 19:05:22 字數 2949 閱讀 1571

string a =

newstring

("aaa");

string b =

newstring

("aaa");

console.

writeline

(a == b)

;

使用了new,他們將生成兩個不一樣的本體,但他們仍判斷內容(運算子的運算方式是可以修改的)

string s1 =

"hello "

;string s2 = s1;

s1 +

="world"

;system.console.

writeline

(s2)

;

如果是陣列,這麼寫就串號了。

但是字串的內容一旦生成就不會再變了。

所以字串的操作和普通的引用型別不一樣

在執行+= "world"的時候,會生成乙個新的字串

然後這個新字串的快捷方式會給s1.

而s2還是指向hello

因為這種特性所以string用起來的感覺像簡單型別

每一次對string進行更改的時候都是建立了乙個物件。這樣是非常消耗資源的

特別是在迴圈裡面多次對string修改的時候

string s ="";

for(

int i =

0; i <

10000

; i++

) s +

= $"\n"

;console.

writeline

(s);

stringbuff和string的互換方法:

string s =

"1";

stringbuilder sb =

newstringbuilder

(s);

for(

int i =

0; i <

10000

; i++

) sb.

($"\n");

s = sb.

tostring()

;console.

writeline

(s);

string s =

"hello"

;for

(int i =

0; i < s.length; i++

) console.

writeline

(s[i]

);

string可以像陣列一樣通過索引拆成char

但是string不是char陣列

且通過索引訪問的char不可更改

string和char可以通過這種方式互換

借助範圍運算子對string進行裁剪(8.0以上語法版本)

string s =

"hello world"

;s = s[..6

];console.

writeline

(s);

或者使用裁剪方法:substring()

string s =

"hello world"

;s = s.

substring(0

,6);

console.

writeline

(s);

第乙個引數是開始位置,第二個引數是裁剪長度,不是結束位置

s[a..b]的等效寫法是s.substring(a, b-a);

裁剪很多時候都需要根據字串的位置來裁剪

查詢字元位置的方法是:indexof()

string s =

@"c:\新建資料夾\a.jpg"

);

如果查詢到指定字元,會獲得第乙個字元的位置(「.jpg」中的「.」)

如果沒找到,會返回-1。如果開頭就是,返回0

indexof可以在後面再寫1個或2個數字引數。

第乙個數字表示從第5個字元開始查詢。

第二個數字表示往後只找3個字元

string s =

@"c:\新建資料夾\a.jpg"

);

可以將字串拆分為字串陣列。

不保留拆分關鍵字(按空格拆分,結果陣列不包含空格)

C 中String型別的常用方法

序號 方法名稱 描述1 public static int compare string stra,string strb 比較兩個指定的 string 物件,並返回乙個表示它們在排列順序中相對位置的整數。該方法區分大小寫。2 public static int compare string str...

string型別常用函式

乙個字串就是乙個string型別資料,此型別變數我們可以把它看作乙個唯讀陣列,其元素是char變數,在這裡我們來說下string型別的常用命令。1 tochararray 將此例項中的字元複製到 unicode 字元陣列。其示例是 char ch 2 tolower 返回此字串轉換為小寫形式的副本。...

理解C 的string型別

有關c string型別究竟是值型別還是引用型別,在很多c 學習者中都或多或少造成過困惑,多數是因為這個情況 string a aaa string b a b bbb 或者是這麼幾行 public void swap string s1,string s2 string temp s1 s1 s2...