# 字串

雙引號包括起來的 0 個或多個字元,就是一個基本的字串

# 讀入字串

in.next(); // 讀入一個單字,單字的標誌是空格、tab 與換行
in.nextLine(); // 讀入一整行

# 字串變數 String

String s;
  • String 是一個類別
  • String 的變數和陣列變數類似,他並不存放字串,不是字串的所有者,他是字串的管理員。

# new 創建物件

String s = new String("Hello World");
  • 創建了一個 String 物件
  • "Hello World" 初始化這個物件
  • 創建管理這個物件的變數 s
  • 讓 s 管理這個物件
String s = "Hello";
  • 編譯器創建一個 String 類別管理交給 s 管理

# 內容比較

  • 比較是否同一個
if( s == "Hello" ){
    ...
}
  • equals 比較內容是否相同
if(s.equals("Hello")){
    ...
}

# 字串連接

  • 用加號 + 可以連接兩個字串
    • "Hello "+ "World" => "Hello World"
  • 當 + 的一邊是字串、另一邊不是時,則會改為字串形式做連接。
    • "I'm "+ 17 => "I'm 17"
    • "Hello "+ 1 + 7 => "Hello 17"

# 字串運算 .

  • 字串是物件,對他的所有操作都是通過 . 這個運算子進行操作 => 字串.操作
  • 字串可以是變數也可以是常數
    Java 的字串是一種特殊的 不可變 物件,所有的字串操作都會產生一個新的字串。
String s = "CYSH";
System.out.println(s.toLowerCase()); // cysh
System.out.println(s); // CYSH

# 大小比較

String s1 = "16", s2 = "15";
System.out.println( s1.compareTo(s2)); //  1
System.out.println( s2.compareTo(s1)); // -1
System.out.println( "22".compareTo("52")); // -3
System.out.println( "A".compareTo("C")); // -2
  • 如果 s1 比 s2 小,那麼結果為負的
  • 如果 s1 和 s2 相等,那麼結果是 0
  • 如果 s1 比 s2 大,那麼結果是正的

# 獲得長度

String name = "Hello";
name.length(); // 5
String str = "";
str.length();  // 0
String str2;
str2.length(); // Error! str2 沒有管理任何 String 物件

# 訪問字串的字元

s.charAT(index);
String s = "Hello";
s.charAT(0); // H
  • 返回在 index 上的字元
  • index 的範圍是 0s.length()-1
  • 不能用 for-each 歷遍字串

# 得到子串

s.substring(n);
  • 得到 n 號位置之前的所有字串內容
s.substring(begin,end);
  • 得到從 begin 到 end 之前的所有內容

# 尋找字元

s.index0f(c);
  • 得到字元 c 在字串中的位置,若未尋找到就會回傳 -1
s.index0f(c,n);
  • 從 n 位開始尋找字元 c
s1.index0f(s2);
  • 得到 s2 在 s1 中的位置
s.lastIndex0f(c);
s.lastIndex0f(c,n);
s1.lastIndex0f(s2);
  • 從最後一項開始往回找

# 以 x 開始或結束

s.startsWith(x);
s.endsWith(x);

# 去除兩端空格

s.trim();

# 內容替換

s.replace(c1,c2);

# 大小寫轉換

s.toLowerCase()
s.toUpperCase()
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay