1. 程式人生 > >Java中String類常用方法(轉)

Java中String類常用方法(轉)

轉自:https://blog.csdn.net/kaishizhangcheng/article/details/52332543

int indexOf(String str)
該方法用於返回當給定字串在當前字串中的位置,若當前字串不包含給定字串則返回-1。
過載的方法
int indexOf(String str,int formIndex),從指定下標處(包含)查詢子串,返回返回當給定字串在當前字串中的位置,若當前字串不包含給定字串則返回-1。
相關的方法
int lastIndexOf(String str),該方法用於返回子字串在該字串中最後一次出現的下標。

  1. /**
  2. * int indexOf(String str)
  3. * 返回當給定字串在當前字串中的位置
  4. * 若當前字串不包含給定字串則返回-1
  5. * 過載的方法
  6. * int indexOf(String str,int formIndex)
  7. * @author zc
  8. */
  9. @Test
  10. public void testIndexOf(){
  11. // 0123456789012345
  12. String str="thinking in java";
  13. //查詢in
  14. int index=str.indexOf("in");
  15. System.out.println(index);//2
  16. int index2=str.indexOf("ja");
  17. int
    index3=str.indexOf("java");
  18. System.out.println(index2);//12
  19. System.out.println(index3);//12
  20. if(str.indexOf("java")!=-1){
  21. String str2=str.replace("ja","jaaa");//thinking in jaaava
  22. System.out.println(str2);
  23. }
  24. //過載 indexOf(str,包含的起始下標),下標可越界
  25. int index4=str.indexOf("ja",16);
  26. System.out.println("過載的indexOf:"
    +index4);
  27. //lastIndexOf()
  28. int index5=str.lastIndexOf("i");
  29. System.out.println("最後一個i的下標:"+index5);
  30. }

String substring(int start,int end)
擷取字串,傳入的兩個引數分別為要擷取邊界的下標。
在java api 中,通常使用兩個數字表示範圍時,都是含頭不含尾,即包含起始下標對應的內容,但不包含結束下標的處對應的內容。

  1. public static void main(String[] args) {
  2.   //使用該方法擷取域名
  3. String str="http://www.abcde.cn";
  4. String name=str.substring(11,15);
  5. System.out.println(name);
  6. //過載 substring(int index):從該下標到結束
  7. name=str.substring(11);
  8. System.out.println(name);
  9. //擷取域名
  10. int point=str.indexOf(".");
  11. int end=str.lastIndexOf(".");
  12. String name1=str.substring(point+1,end);
  13. System.out.println(name1);
  14. }
  15. @Test
  16. public void test01(){
  17. String str2="http://www.abc.com.cn";
  18. int start=str2.indexOf(".")+1;
  19. int end=str2.indexOf(".",start);
  20. String name=str2.substring(start,end);
  21. System.out.println(name);
  22. }

String trim()
去除一個字串兩邊的空白字元(如空格,tab)
  1. String str=" hello ";
  2. String trim=str.trim();
  3. System.out.println(trim);//hello

char charAt(int index)
 返回當前字串中指定位置的字元

  1. //charAt:通過位置 獲取內容
  2. String str="abcdef";
  3. char c=str.charAt(2);
  4. System.out.println(c);

* boolean startWith(String str)
* boolean endWith(String str)
* 判斷當前字串是否是以給定的字串開始或結束的

  1. public static void main(String[] args) {
  2. //使用這兩個方法判斷是否是圖片
  3.   String str="zhangc.jpg";
  4. boolean starts=str.startsWith("zh");
  5. boolean end=str.endsWith(".jpg");
  6. System.out.println(starts);
  7. System.out.println(end);
  8. }

String toUpperCase()
String toLowerCase()
 將當前字串中的英文部分轉換為全大寫或全小寫

  1. public static void main(String[] args) {
  2. String str="Hellow World";
  3. str=str.toUpperCase();
  4. System.out.println(str);
  5. str=str.toLowerCase();
  6. System.out.println(str);
  7. }

static String valueOf()
String 提供了若干的靜態過載的方法valueOf,可以將java中的其他型別轉換為字串型別
常用於將基本型別轉換為字串型別
  1. public static void main(String[] args) {
  2. int a=123;
  3. //valueOf()效能好一點
  4. String str=String.valueOf(a);
  5. System.out.println(str);
  6. double d=123.123;
  7. String str2=String.valueOf(d);
  8. //方法2,也可以將一個基本資料型別的資料轉成String型別的變數
  9. String str3=1234f+"";
  10. System.out.println(str3);
  11. }
以下為檢索某個字元在一個字串中出現的所有下標的程式,可以使用charAt方法或intdexOf實現
  1. /**
  2. * 分別使用charAt()和indexOf()實現檢索一個字串中所有字元b出現的下標
  3. * @author zc
  4. */
  5. public class TCharAt {
  6. public static void main(String[] args) {
  7. String s="abcbcdbcgdgscbbvfb";
  8. for(int i=0;i<s.length();i++){
  9. if('b'==s.charAt(i)){
  10. System.out.println(i);
  11. }
  12. }
  13. }
  14. @Test
  15. public void test01(){
  16. String s="abcbcdbcgdgscbbvfb";
  17. int from=0;
  18. for(int i=0;i<s.length();i++){
  19. int index=s.indexOf("b", from);
  20. System.out.println(index);
  21. from=index+1;
  22. if(from>=s.length()){
  23. break;
  24. }
  25. }
  26. }
  27. }

String[] split(String regex)
將當前字串按照滿足正則表示式的部分進行拆分

然後將所有拆分後的部分返回

  1. public static void main(String[] args){
  2. String str="abc123def456ghi789jkl";
  3. //按照數字部分拆分字串
  4. String[] result=str.split("\\d+");//最大匹配
  5. System.out.println(result.length);//4
  6. for(int i=0;i<result.length;i++){
  7. System.out.println(result[i]);
  8. }
  9. }
  10. @Test
  11. public void test02(){
  12. //字串如果是末尾能夠匹配上,所有末尾的 空 字串會被忽略,切分的正則表示式應滿足最大匹配
  13. String str="abc123def456ghi789jkl12313233";
  14. String[] result=str.split("\\d");
  15. for(int i=0;i<result.length;i++){
  16. System.out.println(result[i]);
  17. }
  18. System.out.println("len:"+result.length);//10,末尾的數字切分出來的 空 字串會被忽略
  19. String str2="233abc123def456ghi789jk";
  20. String[] result2=str2.split("\\d");
  21. for(int i=0;i<result2.length;i++){
  22. System.out.println(result2[i]);
  23. }
  24. System.out.println("len:"+result2.length);//13
  25. }

String replaceAll(String regex,String str)
將當前字串中滿足正則表示式的部分替換為給定的字串內容
  1. public static void main(String[] args) {
  2. String str="abc123def456ghi789jkl";
  3. /*
  4. * 將當前字串中的數字部分替換為"#NUMBER"
  5. * */
  6. str=str.replaceAll("\\d","#NUMBER");
  7. System.out.println(str);
  8. str="abc123def456ghi789jkl";
  9. /**
  10. * 將英文部分替換為#CHAR#
  11. * */
  12. str=str.replaceAll("[a-zA-Z]+","#CHAR#");
  13. System.out.println(str);
  14. str=str.replaceAll("\\d+","#NUMBER");
  15. System.out.println(str);
  16. }

下面是我寫的移除字串中所有空格的兩個方法
  1. /**
  2. * 刪除字串中的所有空格
  3. * @author zc
  4. */
  5. public class T11RemoveAllSpace {
  6. public static void main(String[] args) {
  7. String s=" ab cdf dfd dfsf dsfdsfe dsfdsfsfg ";
  8. s=s.trim();
  9. String[] eachs=s.split("\\s+");
  10. StringBuilder builder=new StringBuilder();
  11. for(int i=0;i<eachs.length;i++){
  12. builder.append(eachs[i]);
  13. }
  14. s=builder.toString();
  15. System.out.println(s);
  16. }
  17. //這種方法簡單
  18. @Test
  19. public void test01(){
  20.  String s=" ab cdf dfd dfsf dsfdsfe dsfdsfsfg ";
  21. s=s.replaceAll("\\s+","");
  22. System.out.println(s);
  23. }
  24. }