1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Java字符串操作和C#字符串操作的不同小結(jié)

      前言

      陽城網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站

      每種語言都會有字符串的操作,因?yàn)樽址俏覀兤匠i_發(fā)使用頻率最高的一種類型。今天我們來聊一下Java的字符串操作及在某些具體方法中與C#的不同,對于需要熟悉多種語言的人來說,作為一種參考。進(jìn)行誡勉

      首先,什么是字符串?

      字符串是字符的序列,是作為一種對象而存在。說的直白點(diǎn),字符串就是一些字符的組合,從而構(gòu)成字符串,例如“abc”就是字符串,"郭志奇"也是一種賜福穿。

      我們知道,Java是一種面向?qū)ο蟮母呒壋绦蛘Z言。所有事物均為對象,字符串也不例外,也是一種對象,其對應(yīng)類型為String。

      下面,我們分幾種情況來進(jìn)行說明字符串:

      1、字符串的創(chuàng)建

      2、字符串操作

      • 字符串連接
      • 字符串長度
      • 字符串查找
      • 獲取指定索引的字符
      • 去重空格
      • 判斷相等
      • 大小寫轉(zhuǎn)換
      • 字符串分隔
      • 字符串比較

      字符串創(chuàng)建

      字符串必須先聲明并進(jìn)行初始化,才能使用,否則編譯器會報(bào)出 變量未初始化錯(cuò)誤。

      請注意:Java中字符串定義的類型為String(第一個(gè)字母大寫),對于C#程序員來說,看著不太舒服,因?yàn)閏#中字符串定義為string (第一個(gè)字母小寫),但C#中也是有String類的

      創(chuàng)建字符串也分幾種方式,可以根據(jù)需求靈活組織:

      String(char a[])--Java代碼

        char a[] = { 'a', 'b', 'c' };
        String source = new String(a);
        System.out.println(source);//輸出結(jié)果為abc

      String(char a[],int offset,int length)--Java代碼

        char a[] = { 'a', 'b', 'c' };
        String source = new String(a, 1, 2);
        System.out.println(source);//輸出為bc

      字符串常量:

      String source=“郭志奇”;

         String source = "郭志奇";
         String source1 = "郭志奇";
         System.out.println(source == source1);// 輸出true
         System.out.println(source.equals(source1));// 輸出true

      此處簡單提一下,Java中雙等號== 表示的是引用是否相同,equals比較的是實(shí)際的字符串值。

      對應(yīng)的C#代碼

         string source = "郭志奇";
         string source1 = "郭志奇";
         Console.WriteLine(source==source1);//輸出True
         Console.WriteLine(source.Equals(source1));//輸出True
         Console.WriteLine(string.ReferenceEquals(source,source1));//輸出True
         Console.Read();

      在C#中雙等號以及equals比較的是實(shí)際的值,而refreshEquals比較的是引用是否相同。和Java略有不同。

      字符串操作

      字符串連接

      通過加號+可以將兩個(gè)字符串進(jìn)行連接。請注意,字符串與其他類型連接,會自動(dòng)調(diào)用其toString方法轉(zhuǎn)換成字符串,然后進(jìn)行拼接。
      Java代碼:

        String source = "郭志奇";
        String source2 = "郭語晨";
        String source3 = source + source2;
        System.out.println(source3);// 輸出郭志奇郭語晨
        String source4 = source + 521;// 字符串與數(shù)字拼接
        System.out.println(source4);//輸出郭志奇521

      concat:字符串拼接

         String source = "郭志奇";
         String source2 = "郭語晨";
         String source5 = source.concat(source2);
         System.out.println(source5);// 輸出郭志奇郭語晨

      字符串長度

      通過length()方法獲取字符串長度。請注意:包含字符串中空格的長度。
      Java代碼:

         String source = "  郭志奇 ";//前綴包含一個(gè)空格及一個(gè)tab 后綴包含一個(gè)空格
         System.out.println(source.length());// 輸出6

      C#代碼:

      找茬:從C#輸出的長度可以看到,Tab在Java中長度為1,而在C#長度為2. 英文tab

          string source = " 郭志奇 ";
          Console.WriteLine(source.Length);//輸出7

      字符串查找

      兩種字符串查找方法:

      indexOf():從字符串開始位置進(jìn)行查找

         String source = "郭志奇";
         System.out.println(source.indexOf("郭"));// 輸出0
         System.out.println(source.indexOf(""));// 輸出0

      lastIndexOf()方法:從字符串結(jié)束位置開始查找

         String source = "郭志奇";
         System.out.println(source.lastIndexOf("郭"));// 輸出0
         System.out.println(source.lastIndexOf(""));// 輸出3

      找茬:indexOf查找空字符串,返回值是0。lastIndexOf方法查找空格,返回值是3.等于字符串的長度。

      查看lastIndexOf對應(yīng)的C#代碼實(shí)現(xiàn):

          string source = "郭志奇";
          Console.WriteLine(source.Length);//輸出3
          Console.WriteLine(source.LastIndexOf(""));//輸出2
          Console.Read();

      通過對比lastIndexOf查找空字符串,可以發(fā)現(xiàn)C#和Java的不同,Java返回的是字符串的長度,而C#返回的是字符串長度-1。個(gè)人認(rèn)為C#的處理更符合目的。

      獲取指定索引的字符

      通過charAt方法獲取指定索引的字符

         String source = "郭志奇";
         System.out.println(source.charAt(0));//輸出郭
         System.out.println(source.charAt(source.length() - 1));//輸出奇

      為了學(xué)習(xí),我們就要思考,假如我輸入了負(fù)數(shù)或大于字符串長度的索引會出現(xiàn)什么呢?代碼驗(yàn)證

         String source = "郭志奇";
         System.out.println(source.charAt(-1));
         System.out.println(source.charAt(source.length() + 11));

      沒錯(cuò),代碼執(zhí)行出錯(cuò)了,拋出異常:java.lang.StringIndexOutOfBoundsException

      去重空格

      通過trim方法移除字符串前后空格(包含tab)

        String source = " 郭志奇 ";// 前后都有空格
         String source1 = " 郭志奇 ";
        System.out.println(source.length());
        System.out.println(source.trim().length());
        System.out.println(source1.length());
        System.out.println(source1.trim().length());

      令人遺憾的是,Java沒有提供只清空前綴空格或后綴空格的方法。而C#卻有。

      判斷相等

      兩種判斷字符串相等的方法,雙等號及equals、equalsIgnoreCase

      通過代碼來進(jìn)行說明:

        String source = new String("郭志奇A");
        String source1 = new String("郭語晨");
        String source2 = "郭志奇A";
        String source3 = "郭語晨";
      
        String source4 = "郭志奇a";
      
        System.out.println(source == source2);// false
        System.out.println(source.equals(source2));// true
        System.out.println(source1 == source3);// false
        System.out.println(source1.equals(source3));// true
      
        System.out.println(source == source4);// false
        System.out.println(source.equals(source4));// false
        System.out.println(source.equalsIgnoreCase(source4));// true

      雙等號代表的是字符串引用是否相同,對于不同對象的字符串,雙等號比較是不同的。

      equals比較的是字符串的值,但區(qū)分大小寫

      equalsIgnoreCase:比較的是字符串的值,不區(qū)分大小寫

      進(jìn)行字符串比較,盡量避免使用雙等號。

      大小寫轉(zhuǎn)換

      toUpperCase轉(zhuǎn)換成大寫形式,toLowerCase轉(zhuǎn)換成小寫形式。但對于數(shù)字、空格則會忽略,不進(jìn)行轉(zhuǎn)換。比較簡單

      字符串分隔

      通過split方法進(jìn)行字符串分隔,split參數(shù)是分隔符,返回值是分割后的字符串?dāng)?shù)組。較簡單。

      字符串比較

      通過compareTo方法進(jìn)行字符串比較,

        String source = "ab";
        String source1 = "ba";
        String source2 = "ab";
        System.out.println(source.compareTo(source1));//返回值-1
        System.out.println(source.compareTo(source2));//返回值0
        System.out.println(source1.compareTo(source2));//返回值1
      
        System.out.println(source.compareToIgnoreCase(source1));//返回值-1
        System.out.println(source.compareToIgnoreCase(source2));//返回值0
        System.out.println(source1.compareToIgnoreCase(source2));//返回值1

      compareTo方法會逐個(gè)字符進(jìn)行比較,如果源字符串比目標(biāo)字符串大,那么返回正整數(shù);如果源字符串與目標(biāo)字符串相同,那么返回0;如果源字符串比目標(biāo)字符串小,那么返回負(fù)數(shù)。

      請注意:

      1、返回值為0,那么字符串通過equals比較會相同

      2、返回值正整數(shù)、負(fù)數(shù),是源字符串不同的字符相減所得。

      字符串使我們?nèi)粘i_發(fā)使用頻率最高的類型,因此要數(shù)量掌握字符串的各種操作,以及一些坑點(diǎn),才能在編碼中輕松、愉快的避免各種bug的出現(xiàn)。

      本次說明只介紹了字符串的冰山一角,對于更重要的字符串格式化,本次沒有涉及,因?yàn)榈暗白址袷交涂梢詥为?dú)寫一篇更長的博文才能說明。下次再聊。

      總結(jié)

      以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。


      文章題目:Java字符串操作和C#字符串操作的不同小結(jié)
      網(wǎng)站路徑:http://ef60e0e.cn/article/jjpcsh.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        庆云县| 城固县| 盐城市| 克东县| 江山市| 吕梁市| 博兴县| 长沙市| 安龙县| 通山县| 北碚区| 工布江达县| 大洼县| 滦南县| 蓬安县| 青岛市| 宾川县| 沅陵县| 镇沅| 龙江县| 万盛区| 原平市| 东乌珠穆沁旗| 辽源市| 耒阳市| 谢通门县| 尼木县| 齐河县| 房产| 修水县| 东宁县| 康定县| 乡宁县| 宜都市| 梓潼县| 南投市| 海兴县| 晋州市| 浦东新区| 玉屏| 绥化市|