型別轉換 異常 String知識總結

2022-03-09 23:13:21 字數 3370 閱讀 1945

型別轉換cast:

將字串轉換成「數值型別」 (int、foat、doube)

int.parse(string str)、int.tryparse(string str,out int n)推薦使用後面這個

doube.parse(string str)、doube.tryparse(string str,out doube d)

parse()轉換失敗報異常,tryparse()轉換失敗不報異常

is與as直接型別轉換:

if(p is student)

cr會進行兩次型別檢查if(檢查一次)

student stu=p as student;//推薦,效率高於第一種,如果轉換失敗返回nu,而不會報異常。

型別轉換convert:

convert考慮資料意義的轉換;convert是乙個加工、改造的過程

異常處理的一般**模式:

trycatch

finay

異常處理**的其他幾種形式:

•try   →  多個catch   →   乙個finay

•try→(1個或多個catch),多個catch的順序問題。沒有finay

•try→finay(只能有乙個),沒有catch也可以

注意點:

•發生異常後,try塊中,異常**後的**不會執行

•finay塊中的**,無論是否發生異常都會執行

•finay中不能寫return語句

•try中有return語句,finay也會執行

•即便沒有catch,finay中的**也會執行,但finay之後的**則不會

exception ex 異常也是物件,封裝了異常發生時的一些資訊

exception 類主要屬性:message、stacktrace、innerexception(*)

扔出自己的異常,扔:throw,抓住:catch

建議:通過邏輯判斷(if-ese)減少異常發生的可能性!

在多級方法巢狀呼叫的時候,如果發生了異常,則會終止所有相關方法的呼叫,並且釋放相關的資源。

值型別均隱式派生自system.vauetype

•數值型別、boo、結構、列舉

•檢視i,隱式繼承自vauetype

引用型別派生自system.object

•字串、陣列、類、介面等

•檢視i隱式繼承自object

引用型別變數的賦值只複製對物件的引用

值型別變數賦值會拷貝乙個副本

值傳遞:普通的引數傳遞

值型別:值傳遞、引用傳遞

引用型別:引用傳遞

params:可變引數,無論有幾個引數,必須出現在引數列表的最後,可以為可變引數直接傳遞乙個對應型別的陣列

•引數在傳遞之前必須賦值

•應用場景:內部對外部的值進行改變

out:讓函式可以輸出多個值

•在方法中必須為out引數賦值

•傳遞之前不需要賦值,即使賦值了也不能在方法中使用

•一般用在函式有多個返回值的場所

字串特性

不可變性,示例:toupper();由於字串是不可變的,所以每次修改字串都是建立了乙個單獨的字串副本(又拷貝了乙個字串),畫圖演示

字串池:更高效的利用記憶體;當程式中有多個相同的字串常量時,這些字串都指向記憶體中的同乙個字串,這種特性叫做:字串池

字串池不會造成混亂,是因為:字串具有不可變性

string:字串型別

字串可以看成字元陣列,但是在迴圈時不可以更改,因為不可變特性

屬性ength :獲得字串中字元的個數

例:」aa我你他」→5

方法isnuorempty():靜態方法,判斷為nu或者為」」

方法tochararray() :將string轉換為char

方法toower():將所有字母變為小寫

方法toupper():將所有字母變為大寫

string:字串型別

字串可以看成字元陣列,但是在迴圈時不可以更改,因為不可變特性

屬性ength :獲得字串中字元的個數

例:」aa我你他」→5

方法isnuorempty():靜態方法,判斷為nu或者為」」

方法tochararray() :將string轉換為char

方法toower():將所有字母變為小寫

方法toupper():將所有字母變為大寫

方法equas() :比較兩個字串是否相同;忽略大小寫的比較,使用引數stringcomparation

方法contains():是否包含

方法indexof() :如果沒有找到對應的資料,返回-1

方法astindexof() :如果沒有找到對應的資料,返回-1

方法substring() : 2個過載,擷取字串

方法spit() :分割字串

方法join() :靜態方法

方法format () :靜態方法

方法repace() :替換,一次性全部替換

方法trim() :2個方法的過載

注意:對字串的操作一定要用變數接收返回值,因為字串是不能變的,每次都是構建乙個新的字串

stringbuider

高效的字串操作

當大量進行字串操作的時候,比如,很多次的字串的拼接操作

在需要對字串執行重複修改的情況下,為個體建立新的 string 物件相關的系統開銷可能會非常大。 如果要修改字串而不建立新的物件,則可以使用 system.text. stringbuider 類

stringbuider  != string//將stringbuider轉換為string用tostring();

stringbuider僅僅是拼接字串的工具,大多數情況下還需要把stringbuider轉換為string

•stringbuider sb = new stringbuider();

•sb.tostring();//把stringbuider轉換為字串。

•sb.insert();

•sb.repace();

equas方法

比較兩個物件是否為同乙個物件?

為什麼字串的equas和別的不一樣?

• string的equas方法判斷的是字串的內容是否相同(重寫了object中的equas方法)

•object中的equas方法是判斷物件的位址是否相同

檢視string類的==運算子,內部呼叫的也是equas

在自定義型別中重寫此方法,用於判斷兩個物件是否相同

C 總複習 型別轉換

1.常見型別轉換 int i double d 2.5 i 1.5 隱式型別轉換 i int 1.5 顯式型別轉換 i d 隱式型別轉換 i int d 顯式型別轉換 一般情況下,int 型轉換為int型是非常不可思議的 即非常危險的 編譯器不允許隱式型別轉換的發生,報出錯誤。如果一定要完成這種不能...

c int與string 型別轉換

1,int轉成string 用tostring 或者convert.tostring 如下 例如 int varint 1 string varstring convert.tostring varint string varstring2 varint.tostring 2,string轉成int...

String 型別基本轉換 valueOf

1.由 基本資料型態轉換成 string string 類別中已經提供了將基本資料型態轉換成 string 的 static 方法 也就是 string.valueof 這個引數多載的方法 有下列幾種 string.valueof boolean b 將 boolean 變數 b 轉換成字串 str...