String類的常見操作

来源:http://www.cnblogs.com/liwu/archive/2016/04/04/5352106.html
-Advertisement-
Play Games

一.String類概述 1.String的值是一個對象,也是一個常量不能被改變 2.String的equals方法是比較兩個字元串的內容 3.String s1=”abc” String s2=new String(“abc”) s1有一個對象,s2有兩個對象 二.String常見功能 獲取和判斷 ...


一.String類概述

1.String的值是一個對象,也是一個常量不能被改變

2.String的equals方法是比較兩個字元串的內容

3.String s1=”abc”  String s2=new String(“abc”) s1有一個對象,s2有兩個對象

二.String常見功能---獲取和判斷

1.獲取

1.1 字元串中包含的字元數,也就是字元串的長度。

int length():獲取長度。

1.2 根據指定位置獲取位置上的某個字元

char charAt(int index)

1.3 根據字元獲取該字元在字元串中的位置

Int indexOf(int ch):返回的是ch在字元串中第一次出現的位置

int indexOf(int ch,int fromIndex):從fromIndex指定位置開始,獲取ch在字元串中出現的位置

int indexOf(String str,int fromIndex): 從fromIndex指定位置開始,獲取ch在字元串中出現的位置,如果沒有找到返回-1

int lastIndexOf(String str):反向索引一個字元出現的位置

 1 public static void method_get(){
 2         String str="abcdeakpf";
 3         //列印字元串的長度
 4         sop(str.length());  //結果為5
 5         //根據索引獲取字元
 6         sop(str.charAt(4)); //結果為a
 7         //根據字元獲取索引
 8         sop(str.indexOf('a', 3));  //結果為5
 9         //反向索引一個字元出現的位置
10         sop(str.lastIndexOf("a"));  //結果為5
11     }
View Code

2.判斷

2.1 字元串中是否包含某一個子串

boolean contains(str)

特殊之處:indexOf(str):可以索引str第一次出現的位置,如果返回-1,表示該str不在字元串中存在,所以也可以用於判斷是否包含指定字元子串,而且可以獲取該子串出現的位置;

2.2 字元中是否有內容

boolean isEmpty():原理就是判斷length是否為0

2.3 字元串中是否以指定內容開頭

boolean startsWith(str);

2.4 字元串是以指定內容結尾

boolean endsWith(str);

2.5 判斷字元串內容是否相同,覆寫了Object類中的equals方法

boolean equals(str);

2.6 判斷內容是否相同,忽略大小寫

boolean equalsIgnoreCase();

1 public static void method_is(){
2         String str="ArrayDemo.java";
3         //判斷文件名稱是否以Array單詞開頭
4         sop(str.startsWith("Array"));  //結果為true
5         //判斷文件名稱是否是.java文件
6         sop(str.endsWith(".java"));    //結果為true
7         //判斷文件名稱中是否包含Demo單詞
8         sop(str.contains("Demo"));     //結果為true
9     }
View Code

3.字元串常見功能---轉換

3.1 將字元數組轉成字元串。

構造函數:String(char[])

          String(char[],offset,count):將字元數組中的一部分轉成字元串

靜態方法:

          static String copyValueOf(char[])

          static String copyValueOf(char[],offset,count)

          static String valueOf(cahr[])

3.2 將字元串轉成字元數組

char[] toCharArray();

3.3 將位元組數組轉換成字元串

          String(byte[])

          String(byte[],offset,count):將位元組數組中的一部分轉成字元串

3.4 將字元串轉換成位元組數組

byte[] getBytes();

3.5 將基本數據類型轉換成字元串

static String valueOf(int)

static String valueOf(double)

3.6 特殊:字元串和位元組數組在轉換過程中是可以指定編碼表的。

 1 public static void method_trans(){
 2         char[] arr={'a','b','c','d','e','f'};
 3         String s=new String(arr,1,3);
 4         sop("s="+s);  //結果為bcd
 5         
 6         String s1="zxcvbnm";
 7         char[] chs=s1.toCharArray();
 8         for (int i = 0; i < chs.length; i++) {
 9             sop("ch="+chs[i]);
10         }
11     }
View Code

4.替換

String replace(oldchar,   newchar)

如果要替換的字元不存在,返回的還是原串

1 public static void method_replace(){
2         String s="Hello java";
3         String s1=s.replace('a', 'n');
4         String s2=s.replace("java", "world");
5         sop("s="+s);          //結果為Hello java
6         sop("s1="+s1);        //結果為Hello jnvn
7         sop("s2="+s2);        //結果為Hello world
8     }
View Code

5.切割

String[] split(regex);

1 public static void method_split(){
2         String s="zhangsan,lisi,wangwu";
3         String[] attr=s.split(",");
4         for (int i = 0; i < attr.length; i++) {
5             sop(attr[i]);    //結果為zhangsan lisi wangwu
6         }
7     }
View Code

6.子串,獲取字元串中的一部分

String substring(begin):從指定位置開始到結尾,如果角標不存在,會出現角標越界異常

String substring(begin,end):從起始位置開始到結束位置為止,保護起始位置不包含結束位置

1 public static void method_sub(){
2         String s="abcdef";
3         sop(s.substring(2));         //結果為cdef
4         sop(s.substring(2, 4));      //結果為cd
5     }
View Code

7.轉換,去除空格,比較

7.1 將字元串轉換成大寫或者小寫

String toUpperCase();

String toLowerCase();

7.2 將字元串兩端的多個空格去除

String trim();

7.3 對兩個字元串進行自然順序的比較

int compareTo(String)

1 public static void method_7(){
2         String s="  Hello Java  ";
3         sop(s.toUpperCase());
4         sop(s.toLowerCase());
5         sop(s.trim());
6         String s1="acc";
7         String s2="aaa";
8         sop(s1.compareTo(s2));  //結果為2(兩個Unicode值相減所得結果),表示s1大於s2
9     }
View Code
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 續言 對於本次更新,我想說: 本框架由本人挑時間完善,而我還不是PHP大神級的人物,所以框架漏洞難免,求大神們指出。 本框架的知識點應用都會寫在博客里,大家有什麼異議的可以一起討論,也希望看博客的也能學習到它們。 本次更新,更新了函數規範上的一些問題,如將函數儘量的獨立化,每一個函數儘量只單獨做好一 ...
  • 今天有在校學生問怎麼獲取類中的成員變數的地址偏移量,這個應該是很多初學C++的人很好奇的問題。以前我在學校的時候,也有過這種需求。忘了當時是要寫什麼“奇怪的程式”了,反正需要獲取一個類的成員變數的地址偏移量。 其實這個問題很簡單,如果你瞭解C++的類對象記憶體分佈的話,這個根本不是問題。我給他舉了個例 ...
  • 一般來說傳圖片可以以流的形式來傳輸,即便是用json傳輸,一般也都是傳一個地址,而圖片都存在伺服器上,然後順著地址發送請求下載圖片。 但是這次公司的項目中,圖片是存在oracle資料庫中的blob欄位的,並沒有存在伺服器上,也就是說我必須傳圖片本身過去,而json是無法傳輸二進位的文本格式,因此我就 ...
  • 官方定義: Swoole:重新定義PHP PHP的非同步、並行、高性能網路通信引擎,使用純C語言編寫,提供了PHP語言的非同步多線程伺服器,非同步TCP/UDP網路客戶端,非同步MySQL,非同步Redis,資料庫連接池,AsyncTask,消息隊列,毫秒定時器,非同步文件讀寫,非同步DNS查詢。 Swoole內 ...
  • 1.org.apache.catalina.servlets.DefaultServlet 首先所有的請求進入tomcat,都會流經servlet,如果沒有匹配到任何應用指定的servlet,那麼就會流到預設的servlet。預設的servlet是配置在/conf/web.xml裡面的。配置文件中被 ...
  • Activiti的設計編輯器功能 Create Activiti projects and diagrams. 創建Activiti的項目和圖表。 The Activiti Designer creates a .bpmn file when creating a new Activiti diag ...
  • 前一篇已經翻譯過termvectors的使用方法了,這對於學習如何使用tf idf來說是很有幫助的了。 更多內容參考 "我整理的ELK教程" 什麼是TF IDF? 今天早晨起來,看《ES IN ACTION》的時候,遇到了這個術語,看英文實在不明白,於是百度了一下。看到了阮一峰的一篇關於它的文章,講 ...
  • Java虛擬機位元組碼指令 瞭解了class文件,我覺得就很有必要去瞭解一下JVM中的位元組碼指令,那樣堆class文件以及JVM運行機制也後很大的幫助. Java虛擬機的指令由一個位元組長度的,代表著某種特定操作含義的數字(稱為操作碼,Opcode)以及跟隨其後的零至多個代表所需參數(稱為操作數,Opr ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...