Java基礎(chǔ)語法_Day13

一珊拼、API概述
  • API概念

API(Application Programming Interface) : 應(yīng)用程序編程接口
編寫一個機(jī)器人程序去控制機(jī)器人踢足球猖任,程序就需要向機(jī)器人發(fā)出向前跑速址、向后跑、射門、搶球等各種命令,沒有編過程序的人很難想象這樣的程序如何編寫互艾。但是對于有經(jīng)驗的開發(fā)人員來說,知道機(jī)器人廠商一定會提供一些用于控制機(jī)器人的Java類讯泣,這些類中定義好了操作機(jī)器人各種動作的方法纫普。其實,這些Java類就是機(jī)器人廠商提供給應(yīng)用程序編程的接口好渠,大家把這些類稱為API昨稼。本章涉及的Java API指的就是JDK中提供的各種功能的Java類。

  • 快速使用API步驟:

A:打開幫助文檔
B:點擊顯示拳锚,找到索引悦昵,看到輸入框
C:你要學(xué)習(xí)什么內(nèi)容,你就在框框里面輸入什么內(nèi)容
舉例:Random
D:看包
java.lang包下的類在使用的時候是不需要導(dǎo)包的
E:看類的描述
Random類是用于生成隨機(jī)數(shù)的類
F:看構(gòu)造方法
Random():無參構(gòu)造方法
Random r = new Random();
G:看成員方法
public int nextInt(int n):產(chǎn)生的是一個[0,n)范圍內(nèi)的隨機(jī)數(shù)
調(diào)用方法:
看返回值類型:人家返回什么類型晌畅,你就用什么類型接收
看方法名:名字不要寫錯了
看形式參數(shù):人家要幾個參數(shù),你就給幾個寡痰,人家要什么數(shù)據(jù)類型的抗楔,你就給什么數(shù)據(jù)類型的
int number = r.nextInt(100);

二棋凳、Scanner類 與 String類
  • Scanner類
  • Scanner類作用
    用Scanner類的方法可以完成接收鍵盤錄入的數(shù)據(jù)
  • Scanner類接受鍵盤錄入的字符串
  • 案例代碼一:
package com.neuedu.demo;
import java.util.Scanner;
/*
* Scanner:用于獲取鍵盤錄入的數(shù)據(jù)。(基本數(shù)據(jù)類型连躏,字符串?dāng)?shù)據(jù))
* public String nextLine():獲取鍵盤錄入的字符串?dāng)?shù)據(jù)
*/
public class ScannerDemo {
  public static void main(String[] args) {
      //創(chuàng)建鍵盤錄入對象
      Scanner sc = new Scanner(System.in);
      //接收數(shù)據(jù)
      System.out.println("請輸入一個字符串?dāng)?shù)據(jù):");
      String s = sc.nextLine();
      
      //輸出結(jié)果
      System.out.println("s:"+s);
  }
}
  • String類
  • String類概述
    通過JDK提供的API剩岳,查看String類的說明
    A:"abc"是String類的一個實例,或者成為String類的一個對象
    B:字符串字面值"abc"也可以看成是一個字符串對象
    C:字符串是常量,一旦被賦值入热,就不能被改變
    D:字符串本質(zhì)是一個字符數(shù)組
  • String類的構(gòu)造方法
    String(String original):把字符串?dāng)?shù)據(jù)封裝成字符串對象
    String(char[] value):把字符數(shù)組的數(shù)據(jù)封裝成字符串對象
    String(char[] value, int index, int count):把字符數(shù)組中的一部分?jǐn)?shù)據(jù)封裝成字符串對象
  • 常用構(gòu)造方法演示
  • 案例代碼二:
package com.neuedu.demo;
/*
* String:字符串類
*         由多個字符組成的一串?dāng)?shù)據(jù)
*         字符串其本質(zhì)是一個字符數(shù)組
* 
* 構(gòu)造方法:
*         String(String original):把字符串?dāng)?shù)據(jù)封裝成字符串對象
*         String(char[] value):把字符數(shù)組的數(shù)據(jù)封裝成字符串對象
*         String(char[] value, int index, int count):把字符數(shù)組中的一部分?jǐn)?shù)據(jù)封裝成字符串對象
* 
* 注意:字符串是一種比較特殊的引用數(shù)據(jù)類型拍棕,直接輸出字符串對象輸出的是該對象中的數(shù)據(jù)。
*/
public class StringDemo {
  public static void main(String[] args) {
      //方式1
      //String(String original):把字符串?dāng)?shù)據(jù)封裝成字符串對象
      String s1 = new String("hello");
      System.out.println("s1:"+s1);
      System.out.println("---------");
      
      //方式2
      //String(char[] value):把字符數(shù)組的數(shù)據(jù)封裝成字符串對象
      char[] chs = {'h','e','l','l','o'};
      String s2 = new String(chs);
      System.out.println("s2:"+s2);
      System.out.println("---------");
      
      //方式3
      //String(char[] value, int index, int count):把字符數(shù)組中的一部分?jǐn)?shù)據(jù)封裝成字符串對象
      //String s3 = new String(chs,0,chs.length);
      String s3 = new String(chs,1,3);
      System.out.println("s3:"+s3);
      System.out.println("---------");
      
      //方式4
      String s4 = "hello";
      System.out.println("s4:"+s4);
  }
}
  • 創(chuàng)建字符串對象兩種方式的區(qū)別
  • 案例代碼三:


    內(nèi)存圖.png
package com.neuedu.demo;
/*
* 通過構(gòu)造方法創(chuàng)建的字符串對象和直接賦值方式創(chuàng)建的字符串對象有什么區(qū)別呢?
*         通過構(gòu)造方法創(chuàng)建字符串對象是在堆內(nèi)存勺良。
*         直接賦值方式創(chuàng)建對象是在方法區(qū)的常量池绰播。
*         
* ==:
*         基本數(shù)據(jù)類型:比較的是基本數(shù)據(jù)類型的值是否相同
*         引用數(shù)據(jù)類型:比較的是引用數(shù)據(jù)類型的地址值是否相同
*/
public class StringDemo2 {
  public static void main(String[] args) {
      String s1 = new String("hello");
      String s2 = "hello";
      
      System.out.println("s1:"+s1);
      System.out.println("s2:"+s2);
      
      System.out.println("s1==s2:"+(s1==s2)); //false
      
      String s3 = "hello";
      System.out.println("s1==s3:"+(s1==s3)); //false
      System.out.println("s2==s3:"+(s2==s3)); //true
  }
}
  • String類的判斷功能
    boolean equals(Object obj):比較字符串的內(nèi)容是否相同
    boolean equalsIgnoreCase(String str):比較字符串的內(nèi)容是否相同,忽略大小寫
    boolean startsWith(String str):判斷字符串對象是否以指定的str開頭
    boolean endsWith(String str):判斷字符串對象是否以指定的str結(jié)尾
  • 判斷方法演示
  • 案例代碼四:
package com.neuedu.demo;
/*
* Object:是類層次結(jié)構(gòu)中的根類,所有的類都直接或者間接的繼承自該類尚困。
* 如果一個方法的形式參數(shù)是Object蠢箩,那么這里我們就可以傳遞它的任意的子類對象。
* 
* String類的判斷功能:
* boolean equals(Object obj):比較字符串的內(nèi)容是否相同
* boolean equalsIgnoreCase(String str):比較字符串的內(nèi)容是否相同,忽略大小寫
* boolean startsWith(String str):判斷字符串對象是否以指定的str開頭
* boolean endsWith(String str):判斷字符串對象是否以指定的str結(jié)尾
*/
public class StringDemo {
  public static void main(String[] args) {
      //創(chuàng)建字符串對象
      String s1 = "hello";
      String s2 = "hello";
      String s3 = "Hello";
      
      //boolean equals(Object obj):比較字符串的內(nèi)容是否相同
      System.out.println(s1.equals(s2));
      System.out.println(s1.equals(s3));
      System.out.println("-----------");
      
      //boolean equalsIgnoreCase(String str):比較字符串的內(nèi)容是否相同,忽略大小寫
      System.out.println(s1.equalsIgnoreCase(s2));
      System.out.println(s1.equalsIgnoreCase(s3));
      System.out.println("-----------");
      
      //boolean startsWith(String str):判斷字符串對象是否以指定的str開頭
      System.out.println(s1.startsWith("he"));
      System.out.println(s1.startsWith("ll"));
  }
}
  • 判斷功能案例
    需求:模擬登錄,給三次機(jī)會,并提示還有幾次
  • 案例代碼五:
package com.neuedu.demo;
import java.util.Scanner;
/*
* 模擬登錄,給三次機(jī)會,并提示還有幾次事甜。
* 
* 分析:
*         A:定義兩個字符串對象谬泌,用于存儲已經(jīng)存在的用戶名和密碼
*         B:鍵盤錄入用戶名和密碼
*         C:拿鍵盤錄入的用戶名和密碼和已經(jīng)存在的用戶名和密碼進(jìn)行比較
*             如果內(nèi)容相同,提示登錄成功
*             如果內(nèi)容不同逻谦,提示登錄失敗掌实,并提示還有幾次機(jī)會
*/
public class StringTest {
  public static void main(String[] args) {
      //定義兩個字符串對象,用于存儲已經(jīng)存在的用戶名和密碼
      String username = "admin";
      String password = "admin";
      
      //給三次機(jī)會邦马,用for循環(huán)實現(xiàn)
      for(int x=0; x<3; x++) {
          //鍵盤錄入用戶名和密碼
          Scanner sc = new Scanner(System.in);
          System.out.println("請輸入用戶名:");
          String name = sc.nextLine();
          System.out.println("請輸入密碼:");
          String pwd = sc.nextLine();
          
          //拿鍵盤錄入的用戶名和密碼和已經(jīng)存在的用戶名和密碼進(jìn)行比較
          if(username.equals(name) && password.equals(pwd)) {
              System.out.println("登錄成功");
              break;
          }else {
              if((2-x) ==0) {
                  System.out.println("用戶名和密碼被鎖定,請與管理員聯(lián)系");
              }else {
                  System.out.println("登錄失敗,你還有"+(2-x)+"次機(jī)會"); //2,1,0
              }
          }
      }
  }
}
  • String類的獲取功能
  • 獲取方法演示
package com.neuedu.demo;
/*
* String類的獲取功能:
* int length():獲取字符串的長度贱鼻,其實也就是字符個數(shù)
* char charAt(int index):獲取指定索引處的字符
* int indexOf(String str):獲取str在字符串對象中第一次出現(xiàn)的索引
* String substring(int start):從start開始截取字符串
* String substring(int start,int end):從start開始,到end結(jié)束截取字符串勇婴。包括start忱嘹,不包括end
*/
public class StringDemo {
  public static void main(String[] args) {
      //創(chuàng)建字符串對象
      String s = "helloworld";
      
      //int length():獲取字符串的長度,其實也就是字符個數(shù)
      System.out.println(s.length());
      System.out.println("--------");
      
      //char charAt(int index):獲取指定索引處的字符
      System.out.println(s.charAt(0));
      System.out.println(s.charAt(1));
      System.out.println("--------");
      
      //int indexOf(String str):獲取str在字符串對象中第一次出現(xiàn)的索引
      System.out.println(s.indexOf("l"));
      System.out.println(s.indexOf("owo"));
      System.out.println(s.indexOf("ak"));
      System.out.println("--------");
      
      //String substring(int start):從start開始截取字符串
      System.out.println(s.substring(0));
      System.out.println(s.substring(5));
      System.out.println("--------");
      
      //String substring(int start,int end):從start開始耕渴,到end結(jié)束截取字符串
      System.out.println(s.substring(0, s.length()));
      System.out.println(s.substring(3,8));
  }
}
  • 獲取功能案例
  • 案例代碼六:
package com.neuedu.demo
/*
* 遍歷字符串(獲取字符串中的每一個字符)
*/
public class StringTest {
  public static void main(String[] args) {
      //創(chuàng)建一個字符串對象
      String s = "abcde";
      
      //原始做法
      System.out.println(s.charAt(0));
      System.out.println(s.charAt(1));
      System.out.println(s.charAt(2));
      System.out.println(s.charAt(3));
      System.out.println(s.charAt(4));
      System.out.println("---------");
      
      //用for循環(huán)改進(jìn)
      for(int x=0; x<5; x++) {
          System.out.println(s.charAt(x));
      }
      System.out.println("---------");
      
      //用length()方法獲取字符串的長度
      for(int x=0; x<s.length(); x++) {
          System.out.println(s.charAt(x));
      }
  }
}
  • 案例代碼七:
package com.neuedu.demo;
import java.util.Scanner;
/*
* 統(tǒng)計一個字符串中大寫字母字符拘悦,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)橱脸。(不考慮其他字符)
* 
* 分析:
*         A:鍵盤錄入一個字符串?dāng)?shù)據(jù)
*         B:定義三個統(tǒng)計變量础米,初始化值都是0
*         C:遍歷字符串,得到每一個字符
*         D:拿字符進(jìn)行判斷
*             假如ch是一個字符添诉。
*             大寫:ch>='A' && ch<='Z'
*             小寫:ch>='a' && ch<='z'
*             數(shù)字:ch>='0' && ch<='9'
*         E:輸出結(jié)果
*/
public class StringTest2 {
  public static void main(String[] args) {
      //鍵盤錄入一個字符串?dāng)?shù)據(jù)
      Scanner sc = new Scanner(System.in);
      System.out.println("請輸入一個字符串?dāng)?shù)據(jù):");
      String s = sc.nextLine();
      
      //定義三個統(tǒng)計變量屁桑,初始化值都是0
      int bigCount = 0;
      int smallCount = 0;
      int numberCount = 0;
      
      //遍歷字符串,得到每一個字符
      for(int x=0; x<s.length(); x++) {
          char ch = s.charAt(x);
          //拿字符進(jìn)行判斷
          if(ch>='A' && ch<='Z') {
              bigCount++;
          }else if(ch>='a' && ch<='z') {
              smallCount++;
          }else if(ch>='0' && ch<='9') {
              numberCount++;
          }else {
              System.out.println("該字符"+ch+"非法");
          }
      }
      
      //輸出結(jié)果
      System.out.println("大寫字符:"+bigCount+"個");
      System.out.println("小寫字符:"+smallCount+"個");
      System.out.println("數(shù)字字符:"+numberCount+"個");
  }
}
  • String類的轉(zhuǎn)換功能
  • 轉(zhuǎn)換方法演示
    char[] toCharArray():把字符串轉(zhuǎn)換為字符數(shù)組
    String toLowerCase():把字符串轉(zhuǎn)換為小寫字符串
    String toUpperCase():把字符串轉(zhuǎn)換為大寫字符串
  • 案例代碼八:
package com.neuedu.demo;
/*
* String類的轉(zhuǎn)換功能:
* char[] toCharArray():把字符串轉(zhuǎn)換為字符數(shù)組
* String toLowerCase():把字符串轉(zhuǎn)換為小寫字符串
* String toUpperCase():把字符串轉(zhuǎn)換為大寫字符串
* 
* 字符串的遍歷:
*         A:length()加上charAt()
*         B:把字符串轉(zhuǎn)換為字符數(shù)組栏赴,然后遍歷數(shù)組
*/
public class StringDemo {
  public static void main(String[] args) {
      //創(chuàng)建字符串對象
      String s = "abcde";
      
      //char[] toCharArray():把字符串轉(zhuǎn)換為字符數(shù)組
      char[] chs = s.toCharArray();
      for(int x=0; x<chs.length; x++) {
          System.out.println(chs[x]);
      }
      System.out.println("-----------");
      
      //String toLowerCase():把字符串轉(zhuǎn)換為小寫字符串
      System.out.println("HelloWorld".toLowerCase());
      //String toUpperCase():把字符串轉(zhuǎn)換為大寫字符串
      System.out.println("HelloWorld".toUpperCase());
  }
}
  • 轉(zhuǎn)換功能案例
  • 案例代碼九:
package com.neuedu.demo;
import java.util.Scanner;

/*
* 鍵盤錄入一個字符串蘑斧,把該字符串的首字母轉(zhuǎn)成大寫,其余為小寫。(只考慮英文大小寫字母字符)
* 
* 分析:
*         A:鍵盤錄入一個字符串
*         B:截取首字母
*         C:截取除了首字母以外的字符串
*         D:B轉(zhuǎn)大寫+C轉(zhuǎn)小寫
*         E:輸出即可
*/
public class StringTest {
  public static void main(String[] args) {
      //鍵盤錄入一個字符串
      Scanner sc = new Scanner(System.in);
      System.out.println("請輸入一個字符串:");
      String s = sc.nextLine();
      
      //截取首字母
      String s1 = s.substring(0, 1);
      
      //截取除了首字母以外的字符串
      String s2 = s.substring(1);
      
      //B轉(zhuǎn)大寫+C轉(zhuǎn)小寫
      String s3 = s1.toUpperCase()+s2.toLowerCase();
      
      //輸出即可
      System.out.println("s3:"+s3);
  }
}
  • String類的其它功能
  • 其它方法演示
  • 案例代碼十:
package com.neuedu.demo;
/*
* 去除字符串兩端空格   
*     String trim()
* 按照指定符號分割字符串 
*     String[] split(String str)
*/
public class StringDemo {
  public static void main(String[] args) {
      //創(chuàng)建字符串對象
      String s1 = "helloworld";
      String s2 = "  helloworld  ";
      String s3 = "  hello  world  ";
      System.out.println("---"+s1+"---");
      System.out.println("---"+s1.trim()+"---");
      System.out.println("---"+s2+"---");
      System.out.println("---"+s2.trim()+"---");
      System.out.println("---"+s3+"---");
      System.out.println("---"+s3.trim()+"---");
      System.out.println("-------------------");
                                                              
      //String[] split(String str)
      //創(chuàng)建字符串對象
      String s4 = "aa,bb,cc";
      String[] strArray = s4.split(",");
      for(int x=0; x<strArray.length; x++) {
          System.out.println(strArray[x]);
      }
  }
}
  • String類的其它案例
  • 案例代碼十一:
package com.neuedu.demo;
/*
* 把數(shù)組中的數(shù)據(jù)按照指定個格式拼接成一個字符串
* 舉例:int[] arr = {1,2,3}; 
* 輸出結(jié)果:[1, 2, 3]
* 
* 分析:
*         A:定義一個int類型的數(shù)組
*         B:寫方法實現(xiàn)把數(shù)組中的元素按照指定的格式拼接成一個字符串
*         C:調(diào)用方法
*         D:輸出結(jié)果
*/
public class StringTest {
  public static void main(String[] args) {
      //定義一個int類型的數(shù)組
      int[] arr = {1,2,3};
      
      //寫方法實現(xiàn)把數(shù)組中的元素按照指定的格式拼接成一個字符串
      
      //調(diào)用方法
      String s = arrayToString(arr);
      
      //輸出結(jié)果
      System.out.println("s:"+s);
  }
  
  /*
   * 兩個明確:
   *      返回值類型:String
   *      參數(shù)列表:int[] arr
   */
  public static String arrayToString(int[] arr) {
      String s = "";
      
      //[1, 2, 3]
      s += "[";
      for(int x=0; x<arr.length; x++) {
          if(x==arr.length-1) {
              s += arr[x];
          }else {
              s += arr[x];
              s += ", ";
          }
      }
      s += "]";
      return s;
  }
}
  • 案例代碼十二:
package com.neuedu.demo;
import java.util.Scanner;
/*
* 字符串反轉(zhuǎn)
* 舉例:鍵盤錄入”abc”        
* 輸出結(jié)果:”cba”
* 
* 分析:
*         A:鍵盤錄入一個字符串
*         B:寫方法實現(xiàn)字符串的反轉(zhuǎn)
*             a:把字符串倒著遍歷竖瘾,得到的每一個字符拼接成字符串沟突。
*             b:把字符串轉(zhuǎn)換為字符數(shù)組,然后對字符數(shù)組進(jìn)行反轉(zhuǎn)捕传,最后在把字符數(shù)組轉(zhuǎn)換為字符串
*         C:調(diào)用方法
*         D:輸出結(jié)果
*/
public class StringTest2 {
  public static void main(String[] args) {
      //鍵盤錄入一個字符串
      Scanner sc = new Scanner(System.in);
      System.out.println("請輸入一個字符串:");
      String s = sc.nextLine();
      
      //寫方法實現(xiàn)字符串的反轉(zhuǎn)
      
      //調(diào)用方法
      String result = reverse(s);
      
      //輸出結(jié)果
      System.out.println("result:"+result);
  }
  
  
  
  /*
   * 把字符串倒著遍歷惠拭,得到的每一個字符拼接成字符串。
   * 
   * 兩個明確:
   *      返回值類型:String
   *      參數(shù)列表:String s
   */
  
  /*
  public static String reverse(String s) {
      String ss = "";
      
      for(int x=s.length()-1; x>=0; x--) {
          ss += s.charAt(x);
      }
      
      return ss;
  }
  */
  
  //把字符串轉(zhuǎn)換為字符數(shù)組庸论,然后對字符數(shù)組進(jìn)行反轉(zhuǎn)职辅,最后在把字符數(shù)組轉(zhuǎn)換為字符串
  public static String reverse(String s) {
      //把字符串轉(zhuǎn)換為字符數(shù)組
      char[] chs = s.toCharArray();
      
      //對字符數(shù)組進(jìn)行反轉(zhuǎn)
      for(int start=0,end=chs.length-1; start<=end; start++,end--) {
          char temp = chs[start];
          chs[start] = chs[end];
          chs[end] = temp;
      }
      
      //最后在把字符數(shù)組轉(zhuǎn)換為字符串
      String ss = new String(chs);
      return ss;
  }
}
三、StringBuilder類
  • StringBuilder類概述

StringBuilder:是一個可變的字符串聂示。字符串緩沖區(qū)類域携。

  • String和StringBuilder的區(qū)別:
    • String的內(nèi)容是固定的
    • StringBuilder的內(nèi)容是可變的
  • +=拼接字符串耗費內(nèi)存原因:
    每次拼接都會產(chǎn)生新的字符串對象,而利用StringBuilder來拼接字符串自始至終用的都是同一個StringBuilder容器


    內(nèi)存.png
  • StringBuilder類的常用方法
  • A:構(gòu)造方法:
    StringBuilder()
  • B:成員方法:
    public int capacity():返回當(dāng)前容量 (理論值)
    public int length():返回長度(已經(jīng)存儲的字符個數(shù))
    public StringBuilder append(任意類型):添加數(shù)據(jù),并返回自身對象
    public StringBuilder reverse():反轉(zhuǎn)功能
  • 案例代碼十三:
package com.neuedu.demo;
/*
* StringBuilder:是一個可變的字符串催什。字符串緩沖區(qū)類涵亏。
* 
* String和StringBuilder的區(qū)別:
*         String的內(nèi)容是固定的。
*         StringBuilder的內(nèi)容是可變的蒲凶。
* 
* 構(gòu)造方法:
*         StringBuilder()
* 
* 成員方法:
*         public int capacity():返回當(dāng)前容量
*         public int length():返回長度(字符數(shù))
* 
*         容量:理論值
*         長度:實際值
*/
public class StringBuilderDemo {
  public static void main(String[] args) {
      //創(chuàng)建對象
      StringBuilder sb = new StringBuilder();
      System.out.println("sb:"+sb);
      System.out.println("sb.capacity():"+sb.capacity());
      System.out.println("sb.length():"+sb.length());
  }
}  
  • 案例代碼十四:
package com.neuedu.demo;
/*
* 添加功能
*     public StringBuilder append(任意類型):添加數(shù)據(jù)气筋,并返回自身對象
* 反轉(zhuǎn)功能
*     public StringBuilder reverse()
*/
public class StringBuilderDemo {
  public static void main(String[] args) {
      //創(chuàng)建對象
      StringBuilder sb = new StringBuilder();
      
      //public StringBuilder append(任意類型)
      //StringBuilder sb2 = sb.append("hello");
      
      /*
      System.out.println("sb:"+sb);
      System.out.println("sb2:"+sb2);
      System.out.println(sb == sb2); //true
      */
      
      /*
      sb.append("hello");
      sb.append("world");
      sb.append(true);
      sb.append(100);
      */
      
      //鏈?zhǔn)骄幊?      sb.append("hello").append("world").append(true).append(100);
      
      System.out.println("sb:"+sb);
      
      //public StringBuilder reverse()
      sb.reverse();
      System.out.println("sb:"+sb);
      
  }
}
  • StringBuilder案例
  • 案例一需求:
    StringBuilder和String通過方法完成相互轉(zhuǎn)換
  • 案例代碼十五:
package com.neuedu.demo;
/*
* StringBuilder和String的相互轉(zhuǎn)換
* 
* StringBuilder -- String
*         public String toString():通過toString()就可以實現(xiàn)把StringBuilder轉(zhuǎn)成String
* 
* String -- StringBuilder
*         StringBuilder(String str):通過構(gòu)造方法就可以實現(xiàn)把String轉(zhuǎn)成StringBuilder
*/
public class StringBuilderTest {
  public static void main(String[] args) {
      //StringBuilder -- String
      /*
      StringBuilder sb = new StringBuilder();
      sb.append("hello").append("world");
      
      String s = sb.toString();
      System.out.println(s);
      */
      
      //String -- StringBuilder
      String s = "helloworld";
      StringBuilder sb = new StringBuilder(s);
      System.out.println(sb);
  }
}
  • 案例二需求:
    利用StringBuilder把數(shù)組拼接成一個字符串
    • 舉例:
      int[] arr = {1,2,3};
    • 結(jié)果:
      [1, 2, 3]
  • 案例代碼十六:
package com.neuedu.demo;
/*
* 把數(shù)組拼接成一個字符串
* 舉例:
*         int[] arr = {1,2,3};
* 結(jié)果:
*         [1, 2, 3]
*/
public class StringBuilderTest2 {
  public static void main(String[] args) {
      //定義一個數(shù)組
      int[] arr = {1,2,3};
      
      //寫方法實現(xiàn)拼接
      
      //調(diào)用方法
      String s = arrayToString(arr);
      
      //輸出結(jié)果
      System.out.println("s:"+s);
  }
  
  /*
   * 兩個明確:
   *      返回值類型:String
   *      參數(shù)列表:int[] arr
   */
  public static String arrayToString(int[] arr) {
      StringBuilder sb = new StringBuilder();
      //[1, 2, 3]
      sb.append("[");
      for(int x=0; x<arr.length; x++) {
          if(x==arr.length-1) {
              sb.append(arr[x]);
          }else {
              sb.append(arr[x]).append(", ");
          }
      }
      sb.append("]");
      
      String result = sb.toString();
      
      return result;
  }
}
  • 案例三需求:

利用StringBuilder完成字符串反轉(zhuǎn)

  • 案例代碼十七:
package com.neuedu.demo;
import java.util.Scanner;
/*
* 把字符串反轉(zhuǎn)
* 
* 分析:
*         A:鍵盤錄入一個字符串
*         B:寫方法實現(xiàn)反轉(zhuǎn)
*             String -- StringBuilder -- reverse() -- String
*         C:調(diào)用方法
*         D:輸出結(jié)果
*/
public class StringBuilderTest3 {
  public static void main(String[] args) {
      //鍵盤錄入一個字符串
      Scanner sc = new Scanner(System.in);
      System.out.println("請輸入一個字符串:");
      String s = sc.nextLine();
      
      //寫方法實現(xiàn)反轉(zhuǎn)
      
      //調(diào)用方法
      String result = myReverse(s);
      
      //輸出結(jié)果
      System.out.println("result:"+result);
  }
  
  /*
   * 兩個明確:
   *      返回值類型:String
   *      參數(shù)列表:String
   */
  public static String myReverse(String s) {
      //String -- StringBuilder -- reverse() -- String
      StringBuilder sb = new StringBuilder(s);
      sb.reverse();
      String result = sb.toString();
      return result;
  }
}
  • 案例四需求:
    判斷一個字符串是否是對稱字符串
    例如"abc"不是對稱字符串,"aba"旋圆、"abba"宠默、"aaa"、"mnanm"是對稱字符串
  • 案例代碼十八:
package com.neuedu.demo;
import java.util.Scanner;
/*
* 判斷一個字符串是否是對稱字符串
* 例如"abc"不是對稱字符串灵巧,"aba"搀矫、"abba"、"aaa"刻肄、"mnanm"是對稱字符串
*
* 分析:
*  A:鍵盤錄入一個字符串
*  B:寫方法實現(xiàn)判斷一個字符串是否是對稱字符串
* 把字符串反轉(zhuǎn)瓤球,和反轉(zhuǎn)前的字符串進(jìn)行比較,如果內(nèi)容相同敏弃,就說明是對稱字符串
*  C:調(diào)用方法
*  D:輸出結(jié)果
*/
public class StringBuilderTest4 {
public static void main(String[] args) {
//鍵盤錄入一個字符串
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字符串:");
String s = sc.nextLine();
//寫方法實現(xiàn)判斷一個字符串是否是對稱字符串
//調(diào)用方法
boolean b = isSymmetry(s);
//輸出結(jié)果
System.out.println("b:"+b);
}
/*
* 兩個明確:
* 返回值類型:boolean
* 參數(shù)列表:String s
*/
public static boolean isSymmetry(String s) {
//把字符串反轉(zhuǎn)卦羡,和反轉(zhuǎn)前的字符串進(jìn)行比較,如果內(nèi)容相同麦到,就說明是對稱字符串
StringBuilder sb = new StringBuilder(s);
sb.reverse();
String result = sb.toString();
return result.equals(s);
}
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绿饵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子瓶颠,更是在濱河造成了極大的恐慌拟赊,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粹淋,死亡現(xiàn)場離奇詭異吸祟,居然都是意外死亡瑟慈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門屋匕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來封豪,“玉大人,你說我怎么就攤上這事炒瘟。” “怎么了第步?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵疮装,是天一觀的道長。 經(jīng)常有香客問我粘都,道長廓推,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任翩隧,我火速辦了婚禮樊展,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘堆生。我一直安慰自己专缠,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布淑仆。 她就那樣靜靜地躺著涝婉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蔗怠。 梳的紋絲不亂的頭發(fā)上墩弯,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機(jī)與錄音寞射,去河邊找鬼渔工。 笑死,一個胖子當(dāng)著我的面吹牛桥温,可吹牛的內(nèi)容都是我干的引矩。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼策治,長吁一口氣:“原來是場噩夢啊……” “哼脓魏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起通惫,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤茂翔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后履腋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體珊燎,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡惭嚣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悔政。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晚吞。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谋国,靈堂內(nèi)的尸體忽然破棺而出槽地,到底是詐尸還是另有隱情,我是刑警寧澤芦瘾,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布捌蚊,位于F島的核電站,受9級特大地震影響近弟,放射性物質(zhì)發(fā)生泄漏缅糟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一祷愉、第九天 我趴在偏房一處隱蔽的房頂上張望窗宦。 院中可真熱鬧,春花似錦二鳄、人聲如沸赴涵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽句占。三九已至,卻和暖如春躯嫉,著一層夾襖步出監(jiān)牢的瞬間纱烘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工祈餐, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留擂啥,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓帆阳,卻偏偏與公主長得像哺壶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蜒谤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 【程序1】 題目:古典問題:有一對兔子山宾,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔...
    開心的鑼鼓閱讀 3,311評論 0 9
  • 50道經(jīng)典Java編程練習(xí)題鳍徽,將數(shù)學(xué)思維運用到編程中來资锰。抱歉哈找不到文章的原貼了,有冒犯的麻煩知會聲哈~ 1.指數(shù)...
    OSET我要編程閱讀 6,952評論 0 9
  • 【程序1】 題目:古典問題:有一對兔子阶祭,從出生后第3個月起每個月都生一對兔子绷杜,小兔子長到第三個月后每個月又生一對兔...
    葉總韓閱讀 5,129評論 0 41
  • 本文是我自己在秋招復(fù)習(xí)時的讀書筆記直秆,整理的知識點辑鲤,也是為了防止忘記蒿赢,尊重勞動成果,轉(zhuǎn)載注明出處哦劈彪!如果你也喜歡齿诉,那...
    波波波先森閱讀 829評論 1 6
  • 因為好奇粤剧,我們才會去探索遗座;因為探索,我們更加好奇俊扳。好奇心帶我們看更美的風(fēng)景。 一猛遍、一臺發(fā)動機(jī) 【認(rèn)知需求】 好奇的...
    靜心觀情閱讀 200評論 2 2