字串方法練習
- 練習一
定義一個方法,把陣列{1,2,3}按照指定格式拼接成一個字串。格式參照如下:[word1#word2#word3]。
分析:
1. 首先準備一個int[]陣列,內容是:1、2、3
2. 定義一個方法,用來將陣列變成字串
三要素
返回值型別:String
方法名稱:fromArrayToString
引數列表:int[]
3. 格式:[word1
用到:for迴圈、字串拼接、每個陣列元素之前都有一個word字樣、分隔使用的是
4. 呼叫方法,得到返回值,並列印結果字串
public static void main(String[] args) {
int[] array = {1, 2, 3};
String result = fromArrayToString(array);
System.out.println(result);
}
public static String fromArrayToString(int[] array) {
String str = "[";
for (int i = 0; i < array.length; i++) {
if (i == array.length - 1) {
str += "word" + array[i] + "]";
} else {
str += "word" + array[i] + "#";
}
}
return str;
}
- 練習二
鍵盤輸入一個字串,並且統計其中大寫字母字元出現的次數。
思路:
1. 既然用到鍵盤輸入,肯定是Scanner
2. 鍵盤輸入的是字串,那麼:String str = sc.next();
3. 定義一個變數,代表大寫字母字元的出現次數。
4. 需要對字串一個字、一個字檢查,String-->char[],方法就是toCharArray()
5. 遍歷char[]字元陣列,對當前字元的種類進行判斷,並且用一個變數進行++動作。
6. 列印輸出一個變數,代表大寫字母字元出現次數。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字串:");
String input = sc.next();//獲取鍵盤輸入的一個字串
int countUpper = 0;//大寫字母
char[] charArray = input.toCharArray();
for (int i = 0; i < charArray.length; i++) {
char ch = charArray[i];//當前單個字元
if ('A' <= ch && ch <= 'Z') {
countUpper++;
}
}
System.out.println("大寫字母有:" + countUpper);
}
靜態static關鍵字
- 修飾成員變數
如果一個成員變數使用了static關鍵字,那麼這個變數不再屬於物件自己,而是屬於所在的類。多個物件共享同一份資料。 - 修飾成員方法
一旦使用static修飾成員方法,那麼這就成為了靜態方法。靜態方法不屬於物件,而是屬於類的。
如果沒有static關鍵字,那麼必須首先建立物件,然後通過物件才能使用它。
例如: MyClass obj = new MyClass();
obj.method();
如果有了static關鍵字,那麼不需要建立物件,直接就能通過類名稱來使用它。
無論是成員變數,還是成員方法。如果有了static,都推薦使用類名稱進行呼叫。
靜態變數:類名稱.靜態變數 Student.room
靜態方法:類名稱.靜態方法() MyClass.methodStatic();
注意事項:
1. 靜態不能直接訪問非靜態。
原因:因為在記憶體當中是【先】有的靜態內容,【後】有的非靜態內容。
“先人不知道後人,但是後人知道先人。”
2. 靜態方法當中不能用this。
原因:this代表當前物件,通過誰呼叫的方法,誰就是當前物件。
3. 對於本類當中的靜態方法,可以省略類名稱
例如: myMethod();
Demo01StaticMethod.myMethod(); // 完全等效
按住alt再進行選中 可以實現跨區選中
根據類名稱訪問靜態成員變數的時候,全程【和物件沒關係,只和類有關係】。
靜態程式碼塊
靜態程式碼塊的格式是:
public class 類名稱 {
static {
//靜態程式碼塊的內容
}
}
特點:當第一次用到本類時,靜態程式碼塊執行唯一的一次。
靜態內容總是優先於非靜態,所以靜態程式碼塊比構造方法先執行。
靜態程式碼塊的典型用途:
用來一次性地對靜態成員變數進行賦值。