精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
String和string?

為什么Java中int小寫String大寫?Java沒有string?在c#中為什么又會有String和string?

思索了很久,在百度和谷歌中也搜了很久,MSDN中也查閱了一下,但這個問題始終還是困擾著我。

首先針對Java中int小寫String大寫的問題,網上是這樣說的。int是關鍵字,而String是類,所有的關鍵字都是小寫,至此我又產生了一個問題。字符串類型和其他類型區別在哪?也就是說String和short、byte等類型的區別在哪?我越來越混沌名單,但好像也越來越清晰對他們的看法。

為什么c#中String和string都可以聲明字符串?而Java中只用String來聲明呢?這也就是說為什么Java中聲明字符串不是像聲明整型那樣用關鍵字來定義呢?

下面是粘貼來的:

Stringstring的區別

從位置講:

       1.String是.NET  Framework里面的String,小寫的string是C#語言中的string

    2.如果把usingSystem;刪掉,沒有大寫的String了,System是.NET  Framework類庫中的一個函數名.

從性質講:

1. string是關鍵字,String是類,string不能作為類、結構、枚舉、字段、變量、方法、屬性的名稱

2. 用C#編寫代碼的情況下盡量使用小寫的string,比較符合規范,如果在追求效率的情況下可以使用大寫的String,因為最終通過編譯后,小寫的string會變成大寫的String,可以給編譯減少負荷,從而運行效率提高。

3.  string 類型表示 Unicode 字符的字符串,string 是.NET Framework 中的 String 的別名,對字符串相等性的測試更為直觀

string詳解:

          string s = string.Empty:一個指向空字符串的字符串變量, s不占用存儲空間.s變量可以使用,比如s.Length
string s = "";一個指向"\0"的空字符串, 占用一個字節存儲空間,因為轉義符\0代表字符串結束.s變量可以使用,比如s.Length
string s = null; 一個指不向任何一個存儲空間的變量,s不可以使用
            

單個字符分割

string s="abcdeabcdeabcde";

string[] sArray=s.Split('c');

foreach(string i in sArray)

Console.WriteLine(i.ToString());

輸出下面的結果:

ab

deab

deab

de

多個字符分割:

string s="abcdeabcdeabcde

string[] sArray1=s.Split(new char[3]{'c','d','e'});

foreach(string i in sArray1)

Console.WriteLine(i.ToString());

可以輸出下面的結果:

ab

ab

ab

多個字符分割(正則表達式):

string content="agcsmallmacsmallgggsmallytx";

string[]resultString=Regex.Split(content,"small",RegexOptions.IgnoreCase)

foreach(string i in resultString)

Console.WriteLine(i.ToString());

輸出下面的結果:agc

mac

ggg

ytx 

0. 問題:
1.C#到底是什么時候傳引用?什么時候傳值?
2. String傳值還是傳引用
3. string和String有什么區別?
4. String為什么是Immutable,怎么實現的?

以下查詢結果以及我的理解:

1.C#到底是什么時候傳引用?什么時候傳值?
傳值的情況 :Struct、Enumeration、Numeric(Integral/Floating/decimal)、bool
傳引用的情況:class、Delegate、Interface

當使用操作符"="以及函數傳參數的時候:
    傳值的結果是把原對象復制了一份,接收者指向原對象。
     傳引用的結果是直接讓接收者指向原對象。
 
有人說,我硬要把值當引用傳怎么辦?
a、用ref關鍵字
b、用數組,數組是class
c、涼拌:)

2.String傳值還是傳引用
C#的String聲明是classString,當然是傳引用。
不過,之所以有這個疑惑,多數是因為這個情況:
string a = "aaa";
string b = a;
b = "bbb";
或者是這么幾行代碼:
public void Swap(string s1, strings2)
{
   string temp=s1;
   s1=s2;
   s2=temp;
}
這時候結果一打印,結果發現a的值還沒有變,Swap也沒有成功,這時候就會有幻覺:是不是沒有傳引用啊?
呵呵,string不會這么粗暴的打亂“聲明為class就是傳引用”這種規則的。
分析一下:
string a ="aaa"; //==>a----->new String("aaa")
string b =a;       //==>b----->a, 傳引用
b ="bbb";         //==> b----->new String("bbb"),傳引用,b指向了一個新的字符串,a并沒有變。
 
Swap函數也是這樣,比如說傳了a, b進去(a="aaa",b="bbb"),
   //s1----->a, s2----->b
   stringtemp=s1;//temp----->s1----->a
   s1=s2;              //s1----->s2----->b;
   s2=temp;         //s2----->temp----->a
結果是,s1和s2確實是Swap了,但是這種結果并不會影響到a和b

3. string和String有什么區別?
MSDN中對string的說明:string is analias for String in the .NETFramework
呵呵string是String的別名而已,都是一家。

4.String為什么是Immutable,怎么實現的?
immutable:對象一旦生成不可改變
關于怎么實現的,在明白了問題2之后很好辦,只要不提供任何修改自己成員變量的方法就可以了。順便聲明為sealed,防止不清楚的后來者違反規定:)
String每個看似修改了成員變量的方法,事實上都返回了一個新的String。
比如String.Replace函數,事實上并沒有改變原來的串,這也是為什么只有讓str =str.Replace( foo,bar )才真正完成替換的原因。

 

 

看來正有一天真正的把Java和C#區別開來的時候,就明白其中的道理了。

為什么Java中int小寫String大寫?Java沒有string?在c#中為什么又會有String和string?

思索了很久,在百度和谷歌中也搜了很久,MSDN中也查閱了一下,但這個問題始終還是困擾著我。

首先針對Java中int小寫String大寫的問題,網上是這樣說的。int是關鍵字,而String是類,所有的關鍵字都是小寫,至此我又產生了一個問題。字符串類型和其他類型區別在哪?也就是說String和short、byte等類型的區別在哪?我越來越混沌名單,但好像也越來越清晰對他們的看法。

為什么c#中String和string都可以聲明字符串?而Java中只用String來聲明呢?這也就是說為什么Java中聲明字符串不是像聲明整型那樣用關鍵字來定義呢?

下面是粘貼來的:

Stringstring的區別

從位置講:

       1.String是.NET  Framework里面的String,小寫的string是C#語言中的string

    2.如果把usingSystem;刪掉,沒有大寫的String了,System是.NET  Framework類庫中的一個函數名.

從性質講:

1. string是關鍵字,String是類,string不能作為類、結構、枚舉、字段、變量、方法、屬性的名稱

2. 用C#編寫代碼的情況下盡量使用小寫的string,比較符合規范,如果在追求效率的情況下可以使用大寫的String,因為最終通過編譯后,小寫的string會變成大寫的String,可以給編譯減少負荷,從而運行效率提高。

3.  string 類型表示 Unicode 字符的字符串,string 是.NET Framework 中的 String 的別名,對字符串相等性的測試更為直觀

string詳解:

          string s = string.Empty:一個指向空字符串的字符串變量, s不占用存儲空間.s變量可以使用,比如s.Length
string s = "";一個指向"\0"的空字符串, 占用一個字節存儲空間,因為轉義符\0代表字符串結束.s變量可以使用,比如s.Length
string s = null; 一個指不向任何一個存儲空間的變量,s不可以使用
            

單個字符分割

string s="abcdeabcdeabcde";

string[] sArray=s.Split('c');

foreach(string i in sArray)

Console.WriteLine(i.ToString());

輸出下面的結果:

ab

deab

deab

de

多個字符分割:

string s="abcdeabcdeabcde

string[] sArray1=s.Split(new char[3]{'c','d','e'});

foreach(string i in sArray1)

Console.WriteLine(i.ToString());

可以輸出下面的結果:

ab

ab

ab

多個字符分割(正則表達式):

string content="agcsmallmacsmallgggsmallytx";

string[]resultString=Regex.Split(content,"small",RegexOptions.IgnoreCase)

foreach(string i in resultString)

Console.WriteLine(i.ToString());

輸出下面的結果:agc

mac

ggg

ytx 

0. 問題:
1.C#到底是什么時候傳引用?什么時候傳值?
2. String傳值還是傳引用
3. string和String有什么區別?
4. String為什么是Immutable,怎么實現的?

以下查詢結果以及我的理解:

1.C#到底是什么時候傳引用?什么時候傳值?
傳值的情況 :Struct、Enumeration、Numeric(Integral/Floating/decimal)、bool
傳引用的情況:class、Delegate、Interface

當使用操作符"="以及函數傳參數的時候:
    傳值的結果是把原對象復制了一份,接收者指向原對象。
     傳引用的結果是直接讓接收者指向原對象。
 
有人說,我硬要把值當引用傳怎么辦?
a、用ref關鍵字
b、用數組,數組是class
c、涼拌:)

2.String傳值還是傳引用
C#的String聲明是classString,當然是傳引用。
不過,之所以有這個疑惑,多數是因為這個情況:
string a = "aaa";
string b = a;
b = "bbb";
或者是這么幾行代碼:
public void Swap(string s1, strings2)
{
   string temp=s1;
   s1=s2;
   s2=temp;
}
這時候結果一打印,結果發現a的值還沒有變,Swap也沒有成功,這時候就會有幻覺:是不是沒有傳引用啊?
呵呵,string不會這么粗暴的打亂“聲明為class就是傳引用”這種規則的。
分析一下:
string a ="aaa"; //==>a----->new String("aaa")
string b =a;       //==>b----->a, 傳引用
b ="bbb";         //==> b----->new String("bbb"),傳引用,b指向了一個新的字符串,a并沒有變。
 
Swap函數也是這樣,比如說傳了a, b進去(a="aaa",b="bbb"),
   //s1----->a, s2----->b
   stringtemp=s1;//temp----->s1----->a
   s1=s2;              //s1----->s2----->b;
   s2=temp;         //s2----->temp----->a
結果是,s1和s2確實是Swap了,但是這種結果并不會影響到a和b

3. string和String有什么區別?
MSDN中對string的說明:string is analias for String in the .NETFramework
呵呵string是String的別名而已,都是一家。

4.String為什么是Immutable,怎么實現的?
immutable:對象一旦生成不可改變
關于怎么實現的,在明白了問題2之后很好辦,只要不提供任何修改自己成員變量的方法就可以了。順便聲明為sealed,防止不清楚的后來者違反規定:)
String每個看似修改了成員變量的方法,事實上都返回了一個新的String。
比如String.Replace函數,事實上并沒有改變原來的串,這也是為什么只有讓str =str.Replace( foo,bar )才真正完成替換的原因。

 

 

看來正有一天真正的把Java和C#區別開來的時候,就明白其中的道理了。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java中String.split()用法說明
C#中Split分隔字符串的應用(C#、split、分隔、字符串)
C#截取字符串的方法小結
asp.net中split的用法.html
php下intval()和(int)轉換使用與區別
UiPath常見的變量轉換及相關函數整理
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 定西市| 仁怀市| 报价| 南丹县| 陈巴尔虎旗| 苍山县| 石渠县| 盐津县| 益阳市| 桦南县| 宁晋县| 苏尼特右旗| 城口县| 朝阳区| 凌源市| 木兰县| 吴堡县| 杭锦后旗| 皋兰县| 禹城市| 渑池县| 兴义市| 彰化市| 龙泉市| 广东省| 昔阳县| 新昌县| 莲花县| 神农架林区| 西峡县| 新田县| 银川市| 西城区| 平安县| 萨迦县| 湾仔区| 霍城县| 波密县| 区。| 钟山县| 洞口县|