亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java字符串操作和C#字符串操作的不同小結

2024-07-14 08:43:01
字體:
來源:轉載
供稿:網友

前言

每種語言都會有字符串的操作,因為字符串是我們平常開發使用頻率最高的一種類型。今天我們來聊一下Java的字符串操作及在某些具體方法中與C#的不同,對于需要熟悉多種語言的人來說,作為一種參考。進行誡勉

首先,什么是字符串?

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

我們知道,Java是一種面向對象的高級程序語言。所有事物均為對象,字符串也不例外,也是一種對象,其對應類型為String。

下面,我們分幾種情況來進行說明字符串:

1、字符串的創建

2、字符串操作

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

字符串創建

字符串必須先聲明并進行初始化,才能使用,否則編譯器會報出 變量未初始化錯誤。

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

創建字符串也分幾種方式,可以根據需求靈活組織:

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

  char a[] = { 'a', 'b', 'c' };  String source = new String(a);  System.out.println(source);//輸出結果為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比較的是實際的字符串值。

對應的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比較的是實際的值,而refreshEquals比較的是引用是否相同。和Java略有不同。

字符串操作

字符串連接

通過加號+可以將兩個字符串進行連接。請注意,字符串與其他類型連接,會自動調用其toString方法轉換成字符串,然后進行拼接。
Java代碼:

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

concat:字符串拼接

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

字符串長度

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

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

C#代碼:

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

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

字符串查找

兩種字符串查找方法:

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

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

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

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

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

查看lastIndexOf對應的C#代碼實現:

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

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

獲取指定索引的字符

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

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

為了學習,我們就要思考,假如我輸入了負數或大于字符串長度的索引會出現什么呢?代碼驗證

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

沒錯,代碼執行出錯了,拋出異常: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

通過代碼來進行說明:

  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比較的是字符串的值,但區分大小寫

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

進行字符串比較,盡量避免使用雙等號。

大小寫轉換

toUpperCase轉換成大寫形式,toLowerCase轉換成小寫形式。但對于數字、空格則會忽略,不進行轉換。比較簡單

字符串分隔

通過split方法進行字符串分隔,split參數是分隔符,返回值是分割后的字符串數組。較簡單。

字符串比較

通過compareTo方法進行字符串比較,

  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方法會逐個字符進行比較,如果源字符串比目標字符串大,那么返回正整數;如果源字符串與目標字符串相同,那么返回0;如果源字符串比目標字符串小,那么返回負數。

請注意:

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

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

字符串使我們日常開發使用頻率最高的類型,因此要數量掌握字符串的各種操作,以及一些坑點,才能在編碼中輕松、愉快的避免各種bug的出現。

本次說明只介紹了字符串的冰山一角,對于更重要的字符串格式化,本次沒有涉及,因為蛋蛋字符串格式化,就可以單獨寫一篇更長的博文才能說明。下次再聊。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。 


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线不卡视频| 国产精品美女久久久久久免费| 国产精品美女999| 国产亚洲xxx| 国产精品夜色7777狼人| 亚洲最新av在线| 亚洲最新av在线网站| 上原亚衣av一区二区三区| 亚洲欧美日韩在线一区| 亚洲欧美综合图区| 亚洲精品乱码久久久久久按摩观| 欧美精品中文字幕一区| 欧美大尺度激情区在线播放| 午夜精品久久久久久久男人的天堂| 69av视频在线播放| 国产午夜一区二区| 国a精品视频大全| 国产91精品久久久久久久| 欧美专区日韩视频| 国产欧美一区二区白浆黑人| 精品亚洲一区二区三区| 久久免费精品视频| 久久亚洲电影天堂| 日韩有码片在线观看| 亚洲bt欧美bt日本bt| 最好看的2019年中文视频| 成人午夜两性视频| 欧美性xxxx在线播放| 狠狠色狠狠色综合日日五| 亚洲级视频在线观看免费1级| 亚洲天堂第二页| 欧美日韩国产va另类| 日韩极品精品视频免费观看| 欧美激情精品久久久久久| 国产精品亚洲аv天堂网| 国产成人免费av电影| 亚洲精品国产品国语在线| 久久艳片www.17c.com| 成人啪啪免费看| 日韩久久免费视频| 亚洲一区二区中文字幕| 亚洲三级黄色在线观看| 国产成人在线精品| 日韩毛片在线看| 久久影院资源网| 亚洲第一天堂无码专区| 中文字幕国产精品| 国产成人涩涩涩视频在线观看| 亚洲黄色av女优在线观看| 欧美一区二区三区……| 国产成人一区二区三区小说| 欧美贵妇videos办公室| 精品高清美女精品国产区| 538国产精品一区二区在线| 亚洲午夜激情免费视频| 久久综合亚洲社区| 成人信息集中地欧美| 亚洲网站在线看| 久久97久久97精品免视看| 亚洲一区二区三区毛片| 精品电影在线观看| 中文字幕国产精品久久| 欧美精品日韩三级| 色先锋资源久久综合5566| 久久香蕉精品香蕉| 精品国偷自产在线视频| 高清一区二区三区四区五区| 日韩免费av在线| 国产精品美乳在线观看| 日韩av在线影视| 成人情趣片在线观看免费| 精品国产31久久久久久| 成人淫片在线看| 最近更新的2019中文字幕| 亚洲影视九九影院在线观看| 久久精品国产亚洲一区二区| 欧美视频中文在线看| 亚洲成人xxx| 欧美最顶级的aⅴ艳星| 日韩视频欧美视频| 国产成人精品在线播放| 国产精品无码专区在线观看| 久久久精品亚洲| 色妞在线综合亚洲欧美| 国产精品久久久久久久久久久新郎| 久久欧美在线电影| 中文字幕亚洲综合久久筱田步美| 亚洲免费视频观看| 国产精品久久久久av免费| 色综合久久88色综合天天看泰| 久久人人爽人人爽爽久久| 亚洲精品视频久久| 九九九久久国产免费| 国产精品大陆在线观看| 久久亚洲春色中文字幕| 亚洲精品www久久久| 日韩av一卡二卡| 久久久视频免费观看| 日本一区二区三区在线播放| 国产精品视频公开费视频| 国产午夜精品视频免费不卡69堂| 国产精品午夜一区二区欲梦| 最近2019年好看中文字幕视频| 日韩精品在线影院| 亚洲色图综合久久| 55夜色66夜色国产精品视频| 亚洲精品丝袜日韩| 国产精品视频精品视频| 亚洲精品短视频| 国产精品亚洲片夜色在线| 性色av香蕉一区二区| 国产情人节一区| 亚洲第一视频网站| 国产精品福利小视频| 久久人人爽人人爽人人片av高清| 国产成人精品优优av| 欧美在线免费视频| 欧美夫妻性生活xx| 久久琪琪电影院| 国产成人精品免高潮在线观看| 色综合亚洲精品激情狠狠| 性欧美亚洲xxxx乳在线观看| 亚洲第一页中文字幕| 91成人免费观看网站| 日韩欧美一区二区在线| 夜夜狂射影院欧美极品| 97在线视频免费看| 亚洲欧美成人精品| 这里只有精品视频在线| 国产日韩欧美电影在线观看| 久久精品一本久久99精品| 国产日产欧美a一级在线| 欧美一级视频一区二区| 久久久精品日本| 久久久av亚洲男天堂| 精品亚洲一区二区三区在线观看| 中文字幕在线日韩| 欧美日韩精品在线观看| 国产精品美女在线观看| 国产精品视频在线观看| 国产精品色婷婷视频| 国产精品久久久久久av福利软件| 亚洲国产精品人久久电影| 97人洗澡人人免费公开视频碰碰碰| 亚洲国产精品成人一区二区| 国产精品专区第二| 97香蕉久久夜色精品国产| 91香蕉电影院| 日韩欧美精品免费在线| 亚洲欧美制服另类日韩| 久久国产精品视频| 国产一区二区精品丝袜| 欧美中文字幕在线视频| 欧美日韩在线视频首页| 欧美成人精品在线视频| 国产精品久久久久久久久| 成人免费大片黄在线播放| 精品国产1区2区| 国产在线拍偷自揄拍精品| 亚洲精品二三区| 日韩欧美在线视频日韩欧美在线视频| 国产日韩亚洲欧美| 欧美精品少妇videofree| 日韩在线视频观看正片免费网站|