字符串處理(一)

1、String類java

一、String類構造函數表正則表達式

 

String()
          初始化一個新建立的 String 對象,使其表示一個空字符序列。
String(byte[] bytes)
          經過使用平臺的默認字符集解碼指定的 byte 數組,構造一個新的 String
String(byte[] bytes, Charset charset)
          經過使用指定的 charset 解碼指定的 byte 數組,構造一個新的 String
String(byte[] ascii, int hibyte)
          已過期。 該方法沒法將字節正確地轉換爲字符。從 JDK 1.1 開始,完成該轉換的首選方法是使用帶有 Charset、字符集名稱,或使用平臺默認字符集的 String 構造方法。
String(byte[] bytes, int offset, int length)
          經過使用平臺的默認字符集解碼指定的 byte 子數組,構造一個新的 String
String(byte[] bytes, int offset, int length, Charset charset)
          經過使用指定的 charset 解碼指定的 byte 子數組,構造一個新的 String
String(byte[] ascii, int hibyte, int offset, int count)
          已過期。 該方法沒法將字節正確地轉換爲字符。從 JDK 1.1 開始,完成該轉換的首選方法是使用帶有 Charset、字符集名稱,或使用平臺默認字符集的 String 構造方法。
String(byte[] bytes, int offset, int length, String charsetName)
          經過使用指定的字符集解碼指定的 byte 子數組,構造一個新的 String
String(byte[] bytes, String charsetName)
          經過使用指定的 charset 解碼指定的 byte 數組,構造一個新的 String
String(char[] value)
          分配一個新的 String,使其表示字符數組參數中當前包含的字符序列。
String(char[] value, int offset, int count)
          分配一個新的 String,它包含取自字符數組參數一個子數組的字符。
String(int[] codePoints, int offset, int count)
          分配一個新的 String,它包含 Unicode 代碼點數組參數一個子數組的字符。
String(String original)
          初始化一個新建立的 String 對象,使其表示一個與參數相同的字符序列;換句話說,新建立的字符串是該參數字符串的副本。
String(StringBuffer buffer)
          分配一個新的字符串,它包含字符串緩衝區參數中當前包含的字符序列。
String(StringBuilder builder)
          分配一個新的字符串,它包含字符串生成器參數中當前包含的字符序列。

二、五種比較經常使用的構造方法(代碼)數組

import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.TreeSet; public class javaTest2 implements javaTest1 { public static void main(String[] args) throws UnsupportedEncodingException { String str=new String(); str="abc"; String str1=new String("abc"); char []a={'a','b','c'}; String str2=new String(a); byte[]b={'a','b','c'}; String str3=new String(b,"UTF-8"); StringBuffer strb=new StringBuffer("abc"); String str4=new String(strb); System.out.println("str:"+str+" str1:"+str1+" str2:"+str2+" str3:"+str3+" str4:"+str4); } }

運行結果:函數

str:abc str1:abc str2:abc str3:abc str4:abc

三、String類相關的函數表測試

 

 char charAt(int index)
          返回指定索引處的 char 值。
 int codePointAt(int index)
          返回指定索引處的字符(Unicode 代碼點)。
 int codePointBefore(int index)
          返回指定索引以前的字符(Unicode 代碼點)。
 int codePointCount(int beginIndex, int endIndex)
          返回此 String 的指定文本範圍中的 Unicode 代碼點數。
 int compareTo(String anotherString)
          按字典順序比較兩個字符串。
 int compareToIgnoreCase(String str)
          按字典順序比較兩個字符串,不考慮大小寫。
 String concat(String str)
          將指定字符串鏈接到此字符串的結尾。
 boolean contains(CharSequence s)
          當且僅當此字符串包含指定的 char 值序列時,返回 true。
 boolean contentEquals(CharSequence cs)
          將此字符串與指定的 CharSequence 比較。
 boolean contentEquals(StringBuffer sb)
          將此字符串與指定的 StringBuffer 比較。
static String copyValueOf(char[] data)
          返回指定數組中表示該字符序列的 String。
static String copyValueOf(char[] data, int offset, int count)
          返回指定數組中表示該字符序列的 String。
 boolean endsWith(String suffix)
          測試此字符串是否以指定的後綴結束。
 boolean equals(Object anObject)
          將此字符串與指定的對象比較。
 boolean equalsIgnoreCase(String anotherString)
          將此 String 與另外一個 String 比較,不考慮大小寫。
static String format(Locale l, String format, Object... args)
          使用指定的語言環境、格式字符串和參數返回一個格式化字符串。
static String format(String format, Object... args)
          使用指定的格式字符串和參數返回一個格式化字符串。
 byte[] getBytes()
          使用平臺的默認字符集將此 String 編碼爲 byte 序列,並將結果存儲到一個新的 byte 數組中。
 byte[] getBytes(Charset charset)
          使用給定的 charset 將此 String 編碼到 byte 序列,並將結果存儲到新的 byte 數組。
 void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
          已過期。 該方法沒法將字符正確轉換爲字節。從 JDK 1.1 起,完成該轉換的首選方法是經過 getBytes() 方法,該方法使用平臺的默認字符集。
 byte[] getBytes(String charsetName)
          使用指定的字符集將此 String 編碼爲 byte 序列,並將結果存儲到一個新的 byte 數組中。
 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
          將字符今後字符串複製到目標字符數組。
 int hashCode()
          返回此字符串的哈希碼。
 int indexOf(int ch)
          返回指定字符在此字符串中第一次出現處的索引。
 int indexOf(int ch, int fromIndex)
          返回在此字符串中第一次出現指定字符處的索引,從指定的索引開始搜索。
 int indexOf(String str)
          返回指定子字符串在此字符串中第一次出現處的索引。
 int indexOf(String str, int fromIndex)
          返回指定子字符串在此字符串中第一次出現處的索引,從指定的索引開始。
 String intern()
          返回字符串對象的規範化表示形式。
 boolean isEmpty()
          當且僅當 length()0 時返回 true
 int lastIndexOf(int ch)
          返回指定字符在此字符串中最後一次出現處的索引。
 int lastIndexOf(int ch, int fromIndex)
          返回指定字符在此字符串中最後一次出現處的索引,從指定的索引處開始進行反向搜索。
 int lastIndexOf(String str)
          返回指定子字符串在此字符串中最右邊出現處的索引。
 int lastIndexOf(String str, int fromIndex)
          返回指定子字符串在此字符串中最後一次出現處的索引,從指定的索引開始反向搜索。
 int length()
          返回此字符串的長度。
 boolean matches(String regex)
          告知此字符串是否匹配給定的正則表達式
 int offsetByCodePoints(int index, int codePointOffset)
          返回此 String 中從給定的 index 處偏移 codePointOffset 個代碼點的索引。
 boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
          測試兩個字符串區域是否相等。
 boolean regionMatches(int toffset, String other, int ooffset, int len)
          測試兩個字符串區域是否相等。
 String replace(char oldChar, char newChar)
          返回一個新的字符串,它是經過用 newChar 替換此字符串中出現的全部 oldChar 獲得的。
 String replace(CharSequence target, CharSequence replacement)
          使用指定的字面值替換序列替換此字符串全部匹配字面值目標序列的子字符串。
 String replaceAll(String regex, String replacement)
          使用給定的 replacement 替換此字符串全部匹配給定的正則表達式的子字符串。
 String replaceFirst(String regex, String replacement)
          使用給定的 replacement 替換此字符串匹配給定的正則表達式的第一個子字符串。
 String[] split(String regex)
          根據給定正則表達式的匹配拆分此字符串。
 String[] split(String regex, int limit)
          根據匹配給定的正則表達式來拆分此字符串。
 boolean startsWith(String prefix)
          測試此字符串是否以指定的前綴開始。
 boolean startsWith(String prefix, int toffset)
          測試此字符串從指定索引開始的子字符串是否以指定前綴開始。
 CharSequence subSequence(int beginIndex, int endIndex)
          返回一個新的字符序列,它是此序列的一個子序列。
 String substring(int beginIndex)
          返回一個新的字符串,它是此字符串的一個子字符串。
 String substring(int beginIndex, int endIndex)
          返回一個新字符串,它是此字符串的一個子字符串。
 char[] toCharArray()
          將此字符串轉換爲一個新的字符數組。
 String toLowerCase()
          使用默認語言環境的規則將此 String 中的全部字符都轉換爲小寫。
 String toLowerCase(Locale locale)
          使用給定 Locale 的規則將此 String 中的全部字符都轉換爲小寫。
 String toString()
          返回此對象自己(它已是一個字符串!)。
 String toUpperCase()
          使用默認語言環境的規則將此 String 中的全部字符都轉換爲大寫。
 String toUpperCase(Locale locale)
          使用給定 Locale 的規則將此 String 中的全部字符都轉換爲大寫。
 String trim()
          返回字符串的副本,忽略前導空白和尾部空白。
static String valueOf(boolean b)
          返回 boolean 參數的字符串表示形式。
static String valueOf(char c)
          返回 char 參數的字符串表示形式。
static String valueOf(char[] data)
          返回 char 數組參數的字符串表示形式。
static String valueOf(char[] data, int offset, int count)
          返回 char 數組參數的特定子數組的字符串表示形式。
static String valueOf(double d)
          返回 double 參數的字符串表示形式。
static String valueOf(float f)
          返回 float 參數的字符串表示形式。
static String valueOf(int i)
          返回 int 參數的字符串表示形式。
static String valueOf(long l)
          返回 long 參數的字符串表示形式。
static String valueOf(Object obj)
          返回 Object 參數的字符串表示形式。

 

四、字符串的經常使用操做ui

import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.TreeSet; public class javaTest2 implements javaTest1 { public static void main(String[] args) throws UnsupportedEncodingException { String str=new String(); str="ABC"; String str1=new String("abc"); char []a={'a','b','c'}; String str2=new String(a); byte[]b={'a','b','c'}; String str3=new String(b,"UTF-8"); StringBuffer strb=new StringBuffer("abc"); String str4=new String(strb); System.out.println("str:"+str+" str1:"+str1+" str2:"+str2+" str3:"+str3+" str4:"+str4); //獲取字符串長度
    System.out.println("str長度:"+str.length()); //字符串鏈接(兩種)
    str=str+str1; System.out.println("str:"+str); str2=str2.concat(str3); System.out.println("str2"+str2); //字符串比較(三種方法)
    if(str.compareTo(str2)>0){ System.out.println("str排在str2以前!"); } if(str.compareTo(str2)<0){ System.out.println("str排在str2以後!"); }else{ System.out.println("str和str2字符內容相同!"); } if(str.equals(str2)){ System.out.println("str和str2字符內容相同!"); }else{ System.out.println("str和str2字符內容不一樣!"); } if(str.equalsIgnoreCase(str2)){ System.out.println("str和str2字符表達相同!"); }else{ System.out.println("str和str2字符表達不一樣!"); } //字符串截取 //從開始位置爲2截取到末尾
    String str5=str.substring(2); System.out.println("str5:"+str5); //從位置2-4截取
    String str6=str2.substring(2, 4); System.out.println("str6:"+str6); //字符串查找
    System.out.println("abc出如今str字符變量的第"+str.indexOf("abc")+"個位置上~"); System.out.println("abc出如今str字符變量的第"+str.indexOf("abc",1)+"個位置上~"); //查詢不存在的字符串時
    System.out.println("abc出如今str字符變量的第"+str.indexOf("abd",1)+"個位置上~"); //字符串大小寫轉換
    String str7=str5.toUpperCase(); System.out.println("str5:"+str5); System.out.println("str7:"+str7); str7=str5.toLowerCase(); System.out.println("str5:"+str5); System.out.println("str7:"+str7); //字符串內容替換(三種都須要有返回值,並非直接對目標字符處理)
    String str8=str7.replace('c', 'C'); System.out.println("str8:"+str8); String str9=str8.replaceFirst("ab", "AB"); System.out.println("str9:"+str9); String str10=str9.replaceAll("C", "c"); System.out.println("str10:"+str10); //獲取字符串某位置的字符
    char c1=str10.charAt(2); System.out.println("c1:"+c1); //判斷一個字符串中是否有要查找的字符(有的話返回true、不然返回false)
    System.out.println("str10中是否含有AB字符串:"+str10.contains("AB")); //判斷字符串str10是否以cA開頭
    System.out.println("str10是否以cA開頭:"+str10.startsWith("cA")); //判斷字符串Str10是否以Bc結尾
    System.out.println("Str10是否以Bc結尾:"+str10.endsWith("Bc")); //去掉先後的空白字符(但不能去掉中間的空白字符)
    str10=" "+str10+" "+"ac"+" "; System.out.println("str10:"+str10); String str11=str10.trim(); System.out.println("str11:"+str11); //若是須要去掉字符串中間的空白符須要使用replace
    String str12=str11.replace(" ", ""); System.out.println("str12:"+str12); } }

運行結果:編碼

str:ABC str1:abc str2:abc str3:abc str4:abc str長度:3 str:ABCabc str2abcabc str排在str2以後! str和str2字符內容不一樣! str和str2字符表達相同! str5:Cabc str6:ca abc出如今str字符變量的第3個位置上~ abc出如今str字符變量的第3個位置上~ abc出如今str字符變量的第-1個位置上~ str5:Cabc str7:CABC str5:Cabc str7:cabc str8:CabC str9:CABC str10:cABc c1:B str10中是否含有AB字符串:true str10是否以cA開頭:true Str10是否以Bc結尾:true str10: cABc ac str11:cABc ac str12:cABcac

 總結:查詢完String類的API文檔,沒有找到String類對應的插入和刪除方法,能夠用兩種思路去解決這個問題:spa

一、經過String類給定的replace方法,將想要刪除和插入的語句經過replace替換成相應的字符串code

二、經過轉換將String類字符串,轉換成StringBuffer類型,而後經過調用StringBuffer的insert()和delete()方法實現。orm

相關文章
相關標籤/搜索