Skip to main content

🦑 Java String

String 為字串,字串為多個文字組成

String

  • 字串須由兩個雙引號 " " 包裝起來
public class firstString {
public static void main(String[] args) {

// 宣告字串
String hi = "hi hi";

// 印出結果
System.out.println(hi);
}
}

new String

  • 字串除了使用 = "hi hi" 也可以使用 new
public class newString {
public static void main(String[] args) {
// 使用 new 來宣告字串
String hi = new String("hi hi");

// 印出結果
System.out.println(hi);
}
}

String 與 new String 的差異

直接等於 String 的時候,會先到 String pool 尋找是否有相同的字串,拿來做使用

new String 則是直接在記憶體中開一段新的位址

var String

caution

在 java 10 之後可以使用 var 來當宣告物件,它會自動判斷型別

使用前請先用 java -version 確認版本

public static void main(String[] args) {
// 使用 var 來宣告字串
var hi = "hi hi";
// 印出結果
System.out.println(hi);
}

字串相加

  • 字串相加會將相加的字串按照順序組合在一起
public static void main(String[] args) {
// 宣告字串
String one = "1";
// 宣告第二字串
String two = "2";
// 相加字串
String ans = "ans=" + one + two;
// 印出結果
System.out.println(ans);
}

結果: ans=12

常用方法

長度 (length)

  • 如果需要字串的長度可使用 length()
public static void main(String[] args) {
// 宣告字串
String hi = "hi hi";
// 印出結果
System.out.println("長度 = " + hi.length());
}

結果: 長度 = 5

字串比較(contentEquals)

  • 比較兩個字串是否相同
  • 比較的是 StringBuffer
public static void main(String[] args) {
// 宣告字串
String hi1 = "hi hi";
String hi2 = "hi hi";
String hi3 = "你好";
// 印出結果
System.out.println("hi1:hi2 " + hi1.contentEquals(hi2));
System.out.println("hi1:hi3 " + hi1.contentEquals(hi3));
}

結果:

hi1:hi2 true

hi1:hi3 false

結尾是否符合(endsWith)

  • 確認結尾是否符合
public static void main(String[] args) {
// 宣告字串
String ten = "10";
// 印出結果
System.out.println(ten.endsWith("0"));
}

結果: true

字串比較(equals)

  • 比較兩個字串是否相同
  • 比較的是 object
public static void main(String[] args) {
// 宣告字串
String hi1 = "hi hi";
String hi2 = "hi hi";
String hi3 = "你好";
// 印出結果
System.out.println("hi1:hi2 " + hi1.equals(hi2));
System.out.println("hi1:hi3 " + hi1.equals(hi3));
}
caution

equals== 的差異

== 比較的是位址equals 比較的則是物件

public static void main(String[] args) {
// 宣告字串
String hi1 = "hi hi";
String hi2 = new String("hi hi");
// 印出結果
System.out.println("hi1.equals(hi2) " + hi1.equals(hi2));
System.out.println("hi1 == hi2 " + (hi1 == hi2));
}

字串比較(equalsIgnoreCase)

  • 比較兩個字串是否相同
  • 不考慮大小寫
public static void main(String[] args) {
// 宣告字串
String hi1 = "hi hi";
String hi2 = new String("hi hi");
// 印出結果
System.out.println("hi1.equals(hi2) " + hi1.equals(hi2));
System.out.println("hi1 == hi2 " + (hi1 == hi2));
}