Java中的String類

来源:http://www.cnblogs.com/liangqiyuan/archive/2016/07/15/5673733.html
-Advertisement-
Play Games

/*String類用於描述字元串事物的那麼它就提供了多個方法對字元串進行操作方法都會用,字元串這塊就結束了常見的操作有哪些?“abcd”它應該具備什麼功能,我們才能更好得操作它?1.獲取(必須要掌握) 1.1 字元串中包含的字元數,也就是字元串的長度 int length() 然而數組也有長度,數組 ...



/*
String類用於描述字元串事物的
那麼它就提供了多個方法對字元串進行操作


方法都會用,字元串這塊就結束了
常見的操作有哪些?
“abcd”
它應該具備什麼功能,我們才能更好得操作它?
1.獲取(必須要掌握)
   1.1 字元串中包含的字元數,也就是字元串的長度
   int length()  然而數組也有長度,數組調用的length沒有括弧,是屬於屬性,但是字元串是方法
   1.2 根據位置獲取位置上的某個字元
   char charAt(int index)
   1.3 根據字元獲取該字元在字元串中的位置
   int indexof(int ch)  返回字元ch在字元串中第一次出現的位置
   int indexpf(int ch,int fromIndex) 從fromIndex指定位置開始,獲取ch在字元串中出現的位置
   
   int indexof(String str)      返回的是str在字元串中第一次出現的位置
   nt indexpf(String str,int fromIndex)   從fromIndex指定的位置開始,獲取str在字元串中出現的位置
   
   反向索引----方法加多一個last就可以
   
2.判斷
  2.1 字元串中是否包含某一個子串
  boolean contains(str);
          int indexof(int ch)  返回字元ch在字元串中第一次出現的位置     有異曲同工之妙
  2.2 字元串中是否有內容
  boolean isEmpty();      原理就是判斷長度是否為0
  2.3 字元串是否是以指定內容開頭
  boolean startWith(str)
  2.4 字元串是否是以指定內容結尾   判斷開頭,判斷結尾是bool類型的
  boolean endWith(str)
  2.5 判斷字元串的內容是否相同   覆寫了父類中的object方法
  boolean equals(str);
  2.6判斷內容是否相同,並忽略大小寫
  boolean equalsIgnoreCsae();
 
3.轉換
  3.1 將字元數組轉成字元串
  構造函數  String(chae[])
            String(char[],int count)  將字元數組的一部分轉成字元串
 
  靜態方法  static String copyValue(char[]);
            static String copyValue(char[],int count);
            static String valueof(char[]);
  3.2 將字元串轉成字元數組
            char[] toCharArray();
  3.3 將位元組數組轉成字元串
            String(byte[])
            String(byte[],int count)
            
        反  byte[] getBytes();
  3.4 將字元串轉成位元組數組
  3.5 將基本數據類型轉成字元串
       static String valueof(int);
       static String valueof(double);
 
  特殊:
      字元串和位元組數組在轉換的過程中,是可以指定編碼表的
 


4.替換
   String replace(oldchar,newchar);            更換的可以是字元串

5.切割
   String[] split(regex);                  把該字元切割了,然後將每一部分組裝成數組
   
6.子串,獲取字元串中的一部分
  String substring(begin);             begin是數字  從指定位置到結尾  0  1  2        如果角標不存在,會發生角標越界異常
  String substring(begin,end);         包含頭,不包含尾

7.轉換 去除空格 比較
  7.1  將字元串轉成大寫或者小寫            
       String toUppercase();         這也是為什麼java能忽略大小寫的原因
       String toLowercase();
  7.2 將字元串兩端多餘的空格去除
       String trim();
  7.3 對兩個字元串進行自然順序的比較
       int compareTo();                   開始比較,從0位置開始,以此比較,找到不同的,就相減,返回這一個值


*/
class StringMethodDemo
{
        public static void method_get()
        {
            String str="abcdefakbf";
            
            /*長度*/
            //System.out.println(str.length());     /*如果又有字元串呢?是不是要列印n多遍?怎麼辦?P1*/
            sop(str.length());
            
            /*根據索引獲取字元*/
            sop(str.charAt(40));               /*當訪問到字元串中不存在的角標時會發生字元串角標越界異常*/
            sop(str.charAt(4));  
            
            /*根據字元獲取索引*/
            sop(str.indexof('a'));
            sop(str.indexof('a',3));
            sop(str.indexof('v',3));             /*如果沒有找到,返回的值是-1,不會出現異常*/
            
            
            
            /*反向索引----方法*/
            sop(str.lastIndexof("a"));   /*輸出的角標不會變,一直從左邊開始*/
        }
        public static void sop(Object obj)    /*無論傳什麼值進來都能列印*/
        {
            System.out.println(obj);
        }
        
    public static void main(String args[])
    {                
        /*
        String s1="abc";
        String s2=new String("abc");
        String s3="abc";
        System.out.println(s1==s2);    false
        System.out.println(s1==s3);    true?為什麼?常量池中abc以及存在,s3發現abc存在後,就不會再開闢記憶體空間了
        */
        
        /*P1*/
        method_get();

    }
}


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近遇到的關於VS里編譯出現的“無法解析的外部符號”問題,在網上尋求解決辦=辦法時查到下麵的博客內容,作者講解的挺全面的,作為收藏以備將來查詢。 原文http://blog.csdn.net/shenyulv/article/details/6699836 VC++時經常會遇到鏈接錯誤LNK2001 ...
  • 從誕生至今,20多年過去,Java至今仍是使用最為廣泛的語言。這仰賴於Java提供的各種技術和特性,讓開發人員能優雅的編寫高效的程式。今天我們就來說說Java的一項基本但非常重要的技術記憶體管理 瞭解C語言的同學都知道,在C語言中記憶體的開闢和釋放都是由我們自己來管理的,每一個new操作都要對於一個de ...
  • scalaz-stream庫的主要設計目標是實現函數式的I/O編程(functional I/O)。這樣用戶就能使用功能單一的基礎I/O函數組合成為功能完整的I/O程式。還有一個目標就是保證資源的安全使用(resource safety):使用scalaz-stream編寫的I/O程式能確保資源的安 ...
  • 項目里有各種加密方法,但從來沒有仔細研究過。一般只是copy。這幾天遇到一些問題,看了一下加密代碼,覺得有些疑惑。 我們知道jdk已經為我們包裝好了很多的演算法。但究竟包裝了哪些演算法,怎麼去掉這些演算法我並沒有去查過。今天跟了一下源碼,大概知道了。 首先要從下麵這幾行代碼說起: 對於AES加密,我們用K ...
  • 最近正在系統學習OpenCV,將不定期發佈筆記,主要按照毛星雲的《OpenCV3編程入門》的順序學習,會參考官方教程和文檔。學習工具是Xcode+CMake,會對書中一部分內容更正,並加入cmakelist的內容。 書中大部分內容來自OpenCV文檔,其實比較推薦官方文檔和教程 OpenCV2.4. ...
  • 之前一直知道多態是什麼東西,平時敲代碼也經常用到多態,但一直沒有真正瞭解多態底層的運行機制到底是怎麼樣的,這兩天才研究明白點,特地寫下來,跟各位同學一起進步,同時也希望各位大神指導和指正。 多態的概念:同一操作作用於不同對象,可以有不同的解釋,有不同的執行結果,這就是多態,簡單來說就是:父類的引用指 ...
  • sphinx是國外的一款搜索軟體。 coreseek是在sphinx的基礎上,增加了中文分詞功能,換句話說,就是支持了中文。 Coreseek發佈了3.2.14版本和4.1版本,其中的3.2.14版本是2010年發佈的,它是基於Sphinx0.9.9搜索引擎的。而4.1版本是2011年發佈的,它是基 ...
  • 最近自己通過視頻與相關書籍的學習,對action裡面接收參數做一些總結與自己的理解,希望各位技術大牛們能多多指教。 0.0、接收參數的(主要)方法 1.1、使用Action的屬性接收參數 本文以最簡單的表單提交為例: 1.1.1.建立login.jsp頁面 1.1.2.創建loginAction 註 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...