日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 与java区别总结 收集

發布時間:2023/12/10 C# 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 与java区别总结 收集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
節選自《C++、Java/C#之比較》http://dev.firnow.com/course/3_program/c++/cppsl/2008520/117228.html 使用指針,由程序員根據需要分配、訪問內存,程序運行時動作明確直接沒有額外的處理步驟,程序的執行效率就高,但若程序員忘了釋放內存或釋放內存的策略不夠周全,就會產生不可預知的問題,而且這種問題往往是比較嚴重。 不使用指針,并不意味著內存的分配、訪問與釋放不須處理,只不過是這些工作由編譯器生成的通用“內存管理器”完成了,因此程序執行時,必須增加額外的內存管理動作,所以執行效率相對上種方式而言有所下降。由于“內存管理器”的運作是基于業內專業人士制定的比較完善內存管理機制,因而安全程度較高。但實際上,由于內存的分配、訪問、使用、釋放的情況比較復雜,這種安全性并不是100%的。也就是說安全的保證是由“另外的人”負責的,這種情況下,一旦出現問題,你無法查清問題所在,或即使你查清問題所在,也無法糾正。 好了,關于指針,一邊是100%的效率、60%的安全性、100%的自由,一邊是60%的效率、99%的安全性、100%枷鎖,你選擇吧。我想對于“高手”而言,自信也罷、固執也罷,選擇指針是他們骨子里自由與冒險精神的決定。 “是生,是死——這是一個值得考慮的問題。”——但不要喪失了行動的能力。 下文引自《Java與C#的區別(語言級別)》http://wantsong.javaeye.com/blog/28769Java與C#的區別(語言級別) 可以到這里詳細了解Java與C#的區別,The C# Programming Language for Java Developers。 我將其整理了下,大致列在下面: 1. 源文件方面。C#可以在一個.cs 文件中。出現多個name sapce(命名空間,有些類似于pacakage),并定義多個類。C#包含有預處理指令。 2. 數據類型方面。 a) C#定義了struct(結構),不能是抽象的,也不能被繼承,是值類型的。 b) C#沒有基本類型的概念,全部是面向對象的類型,int是Int32的簡寫。 c) 在Java中const是保留字,final與C#中的const意思相同,C#中還有readonly允許運行時賦初值。 d) 字符串比較,C#中可以用=比較值,與Java一樣用StringBuffer來減少內存開銷。 3. 運算符方面。C#增加了Checked和Unchecked以繞過編譯錯誤。比如“把一個long付給int32 ,如果高32為零 則不會出錯,否則會有溢出錯誤,unchekced就是告訴編譯器不要去管溢出,盡你可能轉化” 4. 分支語句方面。在Java中goto是保留字。C#中switch中的case不會順序執行,末尾必須有break或者goto關鍵字。 5. 循環語句好像沒有什么不同的。 6. 訪問修飾符方面。在范圍放main,C#增加了internal和protected internal,前者表示只能從當前程序集內可見,即可以在編譯時可Assembly的DLL或EXE,類似于JAR;后者表示對當前程序集或者從此包含類繼承的類可見。Sealed相當于Java中的final關鍵字。 7. 方法方面。與Java相同,只有基本類型通過值傳遞,其他都是傳遞引用。不過C#也可以以引用的方式傳遞基本類型,利用ref關鍵字。而out關鍵字有些類似于Oracle存儲過程,與ref的區別在于:方法忽略out參數初始值,方法必須為out參數賦值。 8. 屬性方面。Getter和Setter的寫法不太一樣。 9. 繼承方面。C#增加了base關鍵字以指向父類。C#中父類方法中具有virtual關鍵字的才可以被子類重寫,重寫時還需要聲明override。與抽象類相同,abstract關鍵字也必須被override重寫。C#中的接口不能聲明常量,接口的屬性只是表示Getter或Setter。 10. 事件。Java中沒有(Java通過實現自定義偵聽器類執行事件)。C#定義了類似于函數指針的委托來實現事件。 11. 運算符重載。Java中無。運算符重載必須為類的靜態方法,重載==,其他判等操作也必許重載。 12. 異常方面。與Java非常相似,只是沒有throws關鍵字,無須截獲異常(當然要在程序主入口去截)。 13. C#增加了索引器,可以象訪問數組一樣訪問類或結構。個人感覺就是少些幾個字而已,還造成一定的困擾。 14. C#的Attribute要比Java的Annotation強很多。不過加上AOP后,這種動態功能Java也不錯了。 15. 在C#中也可以直接使用指針,開辟或者回收內存,只是要使用兩個關鍵字unsafe和fixed。引用自《c#,C++,Java比較》http://read.newbooks.com.cn/info/137063.html 1:純對象導向語言 C# 和 java 都是純對象導向語言,C++ 非純對象導向語言。2:強制型態檢查 C# 和 java 都強制進行型態檢查,C++ 則較寬松。3:宏 C# 和 java 都不支持宏,C++ 支持宏。4:Template C# 和 java 都不支持 template,C++ 支持 template。5:多重繼承 C# 和 java 都不支持多重繼承,且都支持 interface,C++ 支持多重繼承。6:指針 C# 和 java 都不支持指針,C++ 支持指針。(不過,C# 允許在 unsafe code 內使用指針)7:內存管理 C# 和 java 都支持垃圾收集。C++ 不支持垃圾收集。8:虛擬機器 C# 和 java 都需要虛擬機器,C++ 不需要虛擬機器。Java 的執行檔是中間碼,叫做 bytecode,透過 java Runtime Environment(即 JRE)來執行;C# 的執行檔也是中間碼,叫做 managed code,透過 NGWS Runtime 來執行。除了 java,你也可以用其它程序語言(例如 Ada、Python)來作出 bytecode。除了 C#,你也可以用其它程序語言(例如 Visual Basic、C++)來作出 managed code。9:Namespace C# 和 java 都支持階層式的 namespace,但 C++ 只支持單層的 namespace。Java 的 namespace 稱為 package,C# 的 namespace 就稱為 namespace。Java 和 C# 都使用「.」當作 namespace 的符號,而 C++ 使用「::」。10:Platform-Independent Type C# 和 java 都使用 Platform-Independent Type,C++ 的 type 會受到平臺的影響。11:使用 Wrapper 包裝基本型態 C# 和 java 都支持將基本型態包裝成對象,在 java 叫做 wrapper,在 C# 則是叫做 box。12:boolean != integer C# 和 java 都不允許把整數當布爾值用,C++ 則允許。13:access modifier C# 和 java 都支持四種等級的 access modifier,包括 publicprotectedprivatedefault/internal;C++ 只支持 publicprotectedprivate。Java 的 default(不寫)指的就是只針對同一個 package 開放,正好就是 C# 的 internal。14:變量初始化 C# 和 java 都規定不可使用未初始化的變量,C++ 則完全沒有這方面的限制。Java 和 C# 的編譯器都會主動幫未初始化的 field/data member 設定初始值,C++ 則不然。15:轉型 C# 和 java 都規定基本型態和 reference 型態不能互轉。16:數組邊界檢查 C# 和 java 都會主動進行數組邊界檢查,C++ 則不然17:呼叫 Native Code C# 和 java 都支持呼叫 native code。Java 透過 JNI(Java Native Interface);C# 透過 PInvoke(Platform Invocation Service)18:Metadata C# 和 java 的中間碼都包含有類別的 metadata,而 C 語言則是獨立在 header file。19:中間碼指令 C# 的 IL 中間碼指令和 java 的 bytecode 指令非常類似,有的甚至一樣。20:例外處理 C# 和 java 都支持 try/catch/finally,但 C++ 只支持 try/catch。 較細節,出處未知 c#與java的區別 1.屬性: java中定義和訪問均要用get和set方法,可以不成對出現。 c#中是真正的屬性,定義時get和set必須同時出現,房問時用.號即可。不用get,set 2.對象索引 就是對象數組 public Story this [int index] 3.C#中,不用任何范圍修飾符時,默認的是protect,因而不能在類外被訪問. 4.因為JAVA規定,在一個文件中只能有一個public類,而且這個類的名稱必須與文件名一模一樣,這是一個區別 5.在C#中,它是以Main方法來定位入口的.如果一個程序中沒有一個名為Main的方法,就會出"找不到入口的錯誤".不要把Main寫成main喲 6.C#預定義的簡單數據類型比Java多。例如,C#有unit,即無符號整數 7.忘掉Java中的static final修飾符。在C#中,常量可以用const關鍵詞聲明 C#的設計者還增加了readonly關鍵詞,readonly域只能通過初始化器或類的構造函數設置 8.公用類的入口點:c#是可以對Main進行重載(java中是main),允許有int返回值和空參數的Main 9.在Java中,switch語句只能處理整數。但C#中的switch語句不同,它還能夠處理字符變量。請考慮下面用switch語句處理字符串變量的C#代碼 10.C#沒有>>>移位操作符 11.goto關鍵詞: Java不用goto關鍵詞。在C#中,goto允許你轉到指定的標簽。不過,C#以特別謹慎的態度對待goto,比如它不允許goto轉入到語句塊的內部。在Java中,你可以用帶標簽的語句加上break或continue取代C#中的goto。 12.int[] x = { 0, 1, 2, 3 }; int x[] = { 0, 1, 2, 3 }; 但在C#中,只有第一行代碼合法,[]不能放到變量名字之后。 13.與Java不同的是,C#允許為名稱空間或者名稱空間中的類指定別名: using TheConsole = System.Console; 14.在Java中,包的名字同時也是實際存在的實體,它決定了放置.java文件的目錄結構。在C#中,物理的包和邏輯的名稱之間是完全分離的 .NET中包的實體稱為程序集(Assembly)。每一個程序集包含一個manifest結構。manifest列舉程序集所包含的文件,控制哪些類型和資源被顯露到程序集之外,并把對這些類型和資源的引用映射到包含這些類型與資源的文件。程序集是自包含的,一個程序集可以放置到單一的文件之內,也可以分割成多個文件。.NET的這種封裝機制解決了DLL文件所面臨的問題,即臭名昭著的DLL Hell問題。 15.在Java中,java.lang包是默認的包,C#中不存在默認的包 16.C#中的訪問修飾符與Java中的基本對應,但多出了一個internal。簡而言之,C#有5種類型的可訪問性,如下所示: public:成員可以從任何代碼訪問。 protected:成員只能從派生類訪問。 internal:成員只能從同一程序集的內部訪問。 protected internal:成員只能從同一程序集內的派生類訪問。 private:成員只能在當前類的內部訪問。 17.由于C#中不存在final關鍵詞,如果想要某個類不再被派生,你可以使用sealed關鍵詞 18.與Java不同,C#中的接口不能包含域(Field)。 另外還要注意,在C#中,接口內的所有方法默認都是公用方法。在Java中,方法聲明可以帶有public修飾符(即使這并非必要),但在C#中,顯式為接口的方法指定public修飾符是非法的。例如,下面的C#接口將產生一個編譯錯誤。 19.C#中的is操作符與Java中的instanceof操作符一樣,兩者都可以用來測試某個對象的實例是否屬于特定的類型。在Java中沒有與C#中的as操作符等價的操作符。as操作符與is操作符非常相似,但它更富有“進取心”:如果類型正確的話,as操作符會嘗試把被測試的對象引用轉換成目標類型;否則,它把變量引用設置成null。 20.C#仍舊保留了C++的內存手工管理方法,它適合在速度極端重要的場合使用,而在Java中這是不允許的 21.在C#中,所有的異常都從一個名為Exception的類派生 22.枚舉器即enum類型(java無),把它作為一個變量值的類型使用,從而把變量可能的取值范圍限制為枚舉器中出現的值。 23.結構(Struct)與類很相似,而結構是一種值類型,它存儲在棧中或者是嵌入式的,結構可以實現接口,可以象類一樣擁有成員,但結構不支持繼承 24.屬性聲明語法的第一部分與域聲明很相似,第二部分包括一個set過程和/或一個get過程 25.傳值方式: 在java中簡單數據類型的值傳參時,都以傳值方式; 在c#中如果加ref則會以引用的方式傳值(方法內部改變該參數,則外部變量一起跟著變); 加out與ref基本相同,但out不要求參數一定要初始化. 26.c#保留了指針。unsafe 27.代理:代理(delegate)可以看作C++或者其他語言中的函數指針 代理用來封裝可調用方法。你可以在類里面編寫方法并在該方法上創建代理,此后這個代理就可以被傳遞到第二個方法。這樣,第二個方法就可以調用第一個方法。 代理是從公共基類System.Delegate派生的引用類型。定義和使用代理包括三個步驟:聲明,創建實例,調用。代理用delegate聲明語法聲明。更細致的 C#與JAVA之比較(作者Yesky) C#、Java之比較 很多人說C#是微軟用來和Java抗衡的武器,因為二者在很大程度上有著驚人的相似 ,盡管如此,兩者不同的地方也很多,所謂“于細微處見差異”。那么兩者的相似和區 別都在什么地方呢?我們從今天開始,會從各個角度來對比C#和Java的特點,希望能對 正在學習、使用C#的朋友有所幫助。 1、C#和.NET平臺的概貌 2000年6月,微軟發布C#語言和.NET平臺。C#語言是一種強類型的,面向對象的語言 ,它具有語法簡單、表達力強的特點,而.NET平臺則是構成微軟的“.NET計劃”的基石 。 .NET平臺的核心包括兩方面,一方面就是著名的通用語言運行機(Common Language Runtime),雖然這個名詞起得晦澀了點,不過大家可以拿它和Java的虛擬機來作比較, 二者完成的任務大致相同;另一方面就是一大堆通用函數庫,這些庫函數可以被多種語 言調用,并且通過編譯都產生一種共同的中間語言(Intermediate Language),這種語 言也可以拿Java的字節碼來類比,雖然完成的方式有些不一樣。 2、C#和Java 下面簡單地把C#和Java的相似處列出來,雖然在這里我們重點討論的是C#和Java的 不同點,但是了解一下二者的相同之處也是很有必要的。 二者都編譯成跨平臺的、跨語言的代碼,并且代碼只能在一個受控制的環境中運行 自動回收垃圾內存,并且消除了指針(在C#中可以使用指針,不過必須注明unsafe 關鍵字) 都不需要頭文件,所有的代碼都被“包(package)”限制在某個范圍內,并且因為沒 有頭文件,所以消除了類定義的循環依賴 所有的類都是從對象派生出來,并且必須使用New關鍵字分配內存 用對象加鎖的方式來支持多線程 都具有接口(interface)的概念 內部類 繼承類的時候不會以某種特定的訪問權限來繼承; 沒有全局函數或者常量,一切必須屬于類; 數組或者字符串都自帶長度計算和邊界檢查; 只使用“.”操作符,沒有“->”和“::”; “null”、“boolean”和“bool”成為了關鍵字; 任何變量均在使用前進行初始化; 不能使用整數來返回到if條件語句中,必須使用布爾值; “Try”模塊后可以有“finally” ;3. 屬性(Property) 屬性的概念對大家來說應該是很熟悉的,類成員函數可以自由地訪問本類中的任何 屬性成員。不過若要從一個類中去訪問另一個類中的屬性,那就比較麻煩了,所以很多 時候我們使用Getxxx和Setxxx方法,這樣看起來顯得極不自然,比如用Java或者C++,代 碼是這樣的: foo.setSize (getSize () + 1); label.getFont().setBold (true); 但是,在C#中,這樣的方法被“屬性化”了。同樣的代碼,在C#就變成了: foo.size++; label.font.bold = true; 可以看出來,C#顯然更容易閱讀和理解。我們從這個“屬性方法”的子程序代碼中 ,也可以看到類似情況: Java/C++: public int getSize() { return size; } public void setSize (int value) { size = value; } C#: public int Size { get{return size;} set{size = value;} } 為了區分這種屬性化的方法和類的屬性成員,在C#中把屬性成員稱作“域(field)” ,而“屬性”則成為這種“屬性化的方法”專用的名詞。順便說一句,其實這樣的屬性 化方法在VB和DELPHI中是經常碰到的,在VB中它也就叫屬性。 另外,在C#中Get和Set必須成對出現,一種屬性不能只有Get而沒有Set(在Java和 C++中就可以只有Get或者只有Set),C#中這樣做的好處在于便于維護,假如要對某種屬 性進行修改,就會同時注意Get和Set方法,同時修改,不會改了這個忘了那個。 4、對象索引機制(Indexer) C#中引入了對象索引機制。說得明白點,對象索引其實就是對象數組。這里和上一 節中的屬性聯系起來講一下,屬性需要隱藏Get和Set方法,而在索引機制中,各個對象 的Get或者Set方法是暴露出來的。比如下面的例子就比較清楚地說明了這一點。 public class Skyscraper { Story[] stories; public Story this [int index] { get { return stories [index]; } set { if (value != null) { stories [index] = value; } } } }5. 指代(Delegate) 指代這個玩意很特別,它有點象指針,但又不完全是,不過大家還是可以把它理解 為一種類型安全的、面向對象的指針。(什么是類型安全和面向對象就不用講了吧?) 順便提一句,有很多書上把Delegate翻譯成代理,我覺得這樣翻不夠確切,翻譯成“指 代”更恰當些,道理上吻合,并且還符合它的本來意思——微軟本來就是用Delegate來 “取代指針”,所以叫“指代”,呵呵。 說起指代,也許至今Sun還會對它憤憤不已,為什么呢?因為在Sun的標準Java中是 沒有這個東西的,它是微軟99年發布的MSVJ++6添加的“新特性”。為此,兩家公司吵得 不亦樂乎,并且還專門在網上寫了大量文章互相攻擊,有興趣的朋友可以去看看(只有 英文版)。 http://www.Javasoft.com/docs/white/delegates.html http://msdn.microsoft.com/visualj/technical/articles/delegates/truth.asp 話歸正傳,指代有什么特點呢?一個明顯的特點就是它具有了指針的行為,就好象 從Java又倒回到了C++。在C#中,指代完成的功能大概和C++里面的指針,以及Java中的 接口相當。但是,指代比起C++的“正宗指針”來又要高明一些,因為它可以同時擁有多 個方法,相當于C++里面的指針能同時指向多個函數,并且是類型安全的,這一點體現了 它的“對象”特性;而比起Java的接口來,指代高明的地方在于它能可以不經過內部類 就調用函數,或者用少量代碼就能調用多種函數,這一點體現了它的“指針”特性。呵 呵,很有“波粒二象性”的味道吧?指代最重要的應用在于對于事件的處理,下一節我 們將重點介紹。6、事件(Event) C#對事件是直接支持的(這個特點也是MSVJ所具有的)。當前很多主流程序語言處 理事件的方式各不相同,Delphi采用的是函數指針(這在Delphi中的術語是“closure” )、Java用改編類來實現、VC用WindowsAPI的消息系統,而C#則直接使用delegate和ev ent關鍵字來解決這個問題。下面讓我們來看一個例子,例子中會給大家舉出聲明、調用 和處理事件的全過程。 //首先是指代的聲明,它定義了喚醒某個函數的事件信號 public delegate void ScoreChangeEventHandler (int newScore, ref bool cancel) ; //定義一個產生事件的類 public class Game { // 注意這里使用了event關鍵字 public event ScoreChangeEventHandler ScoreChange; int score; // Score 屬性 public int Score { get { return score; } set { if (score != value) { bool cancel = false; ScoreChange (value, ref cancel); if (! cancel) score = value; } } } // 處理事件的類 public class Referee { public Referee (Game game) { // 裁判負責調整比賽中的分數變化 game.ScoreChange += new ScoreChangeEventHandler (game_ScoreChange); } // 注意這里的函數是怎樣和ScoreChangeEventHandler的信號對上號的 private void game_ScoreChange (int newScore, ref bool cancel) { if (newScore < 100) System.Console.WriteLine ("Good Score"); else { cancel = true; System.Console.WriteLine ("No Score can be that high!"); } } } // 主函數類,用于測試上述特性 public class GameTest { public static void Main () { Game game = new Game (); Referee referee = new Referee (game); game.Score = 70; game.Score = 110; } } 在主函數中,我們創建了一個game對象和一個裁判對象,然后我們通過改變比賽分 數,來觀察裁判對此會有什么響應。 請注意,我們的這個系統中,Game對象是感覺不到裁判對象的存在的,Game對象在 這里只負責產生事件,至于有誰會來傾聽這個事件,并為之作出反應,Game對象是不作 任何表態的。 我們注意到,在裁判類的Referee函數中,Game.ScoreChange后面使用了+=和-=操作 符,這是什么意思呢?回到我們定義ScoreChange的地方,可以發現ScoreChange是用ev ent關鍵字修飾的,那么這里的意思就很明白了:ScoreChange是一個事件,而事件被觸 發后需要相應的事件處理機制,+=/-=就是為這個事件增加/移除相對應的事件處理程序 ,而且,并不是一個事件只能對應一個處理程序,我們還可以用這兩個操作符為同一事 件增加/移除數個事件處理程序。怎么樣?很方便吧! 在實際應用中,和我們上面講的(競賽-裁判)機制很相近的系統就是圖形用戶界面 系統了。Game對象可以看作是圖形界面上的小零件,而得分事件就相當于用戶輸入事件 ,而裁判就相當于相應的應用程序,用于處理用戶輸入。 指代機制的首次亮相是在MSVJ里,它是由Anders Hejlsberg發明的,現在又用到了 C#中。指代用在Java語言中的后果,則直接導致了微軟和Sun之間對類和指針的關系產生 了大量的爭論和探討。有意思的是,Java的發明者James Gosling非常幽默地稱呼指代的 發明者Anders Hejlsberg為“‘函數指針’先生”,因為Anders Hejlsberg總是想方設 法地把指針變相地往各種語言中放;不過有人在看了Java中大量地使用了各種類后,也 戲稱Java的發明者James Gosling為“‘全都是類’先生”,真是其中滋味,盡在不言中 啊。

知識點

C#

java

注釋

// /* */ ///文檔注釋

// /* */ /** */文檔注釋

main

Main

main

書名

書名可以與文件名不同

書名與文件名必須相同

string

String string

String

輸出

Console.Write()

Console.WriteLine()

System.out.print 不換行 println

輸入

Console.ReadLine() 結果是字符串

Scanner input=new Scanner(System.in);

int a=input.nextInt() 分類型

變量

先賦值后使用

不可以重復定義變量

包括局部變量

局部變量作用域相同

相同

相同

不包括局部變量

局部變量作用域相同

數據類型

String string

bool

其它的相同 空間大小一樣

float a=31.4f;

String

boolean

一樣

類型轉換

隱式轉換(自動轉換)類型相似由小到大

(類型)值

由字符串轉其它類型

類型.Parse(必須是字符串);

任意類型之間相互轉換

Char a=’0’,int b=a;可以

Int b=48;char a=b;不可以c

Char a=48;不可以

相同

(類型)值

Char

65—A 97-a 48—0

怒我 就氣 死吧

Char a=’0’;

Int b=a; 可以

Int b=48;

Char a=b//不可以

Char c=48//可以

占位符

C#有

if

相同

相同

Switch()

語法相同

Case default里面的break不能省

Switch(java出現的都可以,還可以出現字符串)

語法相同

可以省

Switch只可以判int char

不可以判字符串

Scanner

沒有

Arrays

Array

Arrays

Random

Random rd=new Random()

rd.Next(10);//0-9之間的一個整數

rd.Next(1,10);// 1-10之間的一個整數

相同

rd.nextInt(10);

二維數組

int[,] a=new int[3,4]; 3層樓每層4間

int[][] a=new int[3][4];

???

一維數組

Int[] a;//申請一條街

a=new int[5];//在街上蓋房子

//逐間住人

a[0]=1;a[1]=2;…

//循環查詢

For(int i=0;i<a.Length;i++)

//a[i];

Int[] a=new int[5];//二合一

Int[] a=new int[]{1,2,3,4,5};

Int[] a= {1,2,3,4,5};

Int a[];//錯誤

Int[] a=new int[3]{1,2,3};//正確

Int[] a=new int[4]{1,2,3};//錯誤

Int a[]; 正確

Int[] a=new int[3]{1,2,3};//錯誤

變量命名

$不可以

以字母、下劃線、$打頭,后面還可以出數字

C#

java

String string

String

求長度 Length 屬性

length() 方法

Equals()

equals()

沒有

equalsIgnoreCase()

ToUpper()

toUpperCase()

ToLower()

toLowerCase( )

+

concat() +

Indexof(char string)

indexOf(int String )

lastIndexOf(char string)

lastIndexOf( int String)

String str=”abc123”

Str.Substring(2,3);//c12

String str=”abc123”

Str.substring(2,3);//c

Trim() 去除首尾空格

trim()

Split(char /char[]) 分開

string[] sp = str.Split('-');

foreach (string a in sp)

{

Console.WriteLine(a);

}

沒有

Join(“連接串”,被連接的字符串數組) 連接

str = string.Join(".", sp);

Console.WriteLine(str);

沒有

其它類型轉字符串 其它值.ToString();

Int a

沒有

foreach

?
??
??
??
??

轉載于:https://www.cnblogs.com/OOAbooke/archive/2011/12/06/2277957.html

總結

以上是生活随笔為你收集整理的C# 与java区别总结 收集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。