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...