14. String【連載14】

14. String【連載14】

在我們日常的開發中,String 字符串這種數據類型會經常使用,所以我拿出一些篇幅主要來說一說關於String的常用規則。

之前已經介紹過 Java 中的幾種數據類型,那麼String是一種字符串數據類型,String 類型的變量保存的是字符串類型的數據,比如一句話,一段文字。

  1. 定義字符串類型變量:

    String str = "abc";
    String str1 = "";
    String str2 = new String("你好");

String指定變量類型,字符串內容要用英文雙引號""包裹,如果沒有內容則爲空字符串。也可以使用創建對象的方式來定義字符串類型變量:String str2 = new String("你好");

String是一種引用類型變量,不同於基本類型變量。注意String是一個類,定義一個字符串的本質是創造一個String類的一個對象出來,把字符串存放在對象中。因爲該類型是一個類,當然可以使用String str2 = new String("你好");調用String構造方法,來定義一個字符串。

  1. 獲取字符串長度

    String str = "hello, world";
    System.out.println(str.length());

使用str對象的length()方法獲取字符串長度,注意:一個空格也算是一個單位長度。

output:

12
  1. 格式化字符串

實際情況中,你會經常需要去按照你想要的格式來處理一些字符串,比如:想把 name、age、job三個變量格式化成一個句子:我的名字叫 Arvin, 我今年 28 歲,我的職業是工程師

String name = "Arvin";
int age = 28;
String job = "工程師";

// 我的名字叫 Arvin, 我今年 28 歲,我的職業是工程師
String text = "我的名字叫 " + name + ",我今年 " + age + " 歲" + ",我的職業是" + job;
System.out.println(text);
String fromatString = "我的名字叫 %s, 我今年 %d 歲,我的職業是%s";
System.out.println(String.format(fromatString,name,age,job));

output:

我的名字叫 Arvin,我今年 28 歲,我的職業是工程師
我的名字叫 Arvin, 我今年 28 歲,我的職業是工程師

1、第一種做法是使用 +連接各個變量,會把各個變量連接在一起,這時非String類型變量會自動轉換爲字符串類型。

2、使用String類的 format()方法格式化字符,第一個參數是你要定義的格式化模板,後面的參數是你依次要傳遞的字符串變量

格式化模板中:

%s是一個字符串佔位符,會把String字符串類型的數據替換到該位置。該實例中,name的值在格式化後會被替換到 %s的位置。

%d是一個數值佔位符,格式化後,age的值會被替換到該位置。

  1. 字符串的比較

字符串類型變量進行比較時不能直接使用 ==,要使用String變量的equals()方法。

String str = "abc";
String str1 = new String("abc");

System.out.println(str == str1);
System.out.println(str.equals(str1));
String str2 = "abcd";
if ("abc".equals(str2)) {
    System.out.println("字符串 abc 和 str2 的內容相等");
} else {
  System.out.println("字符串 abc 和 str2 的內容不相等");
}

輸出:

false
true
字符串 abc 和 str2 的內容不相等

str == str1是直接比較 str 和 str1 變量的值,而他們的存放的值不是我們的真實內容,是真實內容對應的引用地址。

str.equals(str1) 是比較 str 和 str1 中的真實內容。

  1. 字符串查找

如果在一個字符串中需要去查找一些特定的內容,這時候我們可以使用以下查找方法

String str = "hello world, abc";
boolean b = str.contains("hello111");//str字符串是否包含"hello111"
System.out.println(b);
System.out.println(str.indexOf("abc111"));
if (str.indexOf("abc") > -1) {
}
System.out.println(str.startsWith("hello"));
System.out.println(str.endsWith("abc"));

輸出:

false
-1
true
true

contains("查找內容"): 是否包含的意思,包含則返回true,否則返回false.

indexOf("查找內容"):查找內容在被查找字符串中的位置,返回數值,若不包含,則返回 -1,否則返回具體位置。

startsWith("查找內容"):是否以查找內容開始字符串,是則返回true,否則返回false

endsWith("查找內容"):字符串是否以查找內容結尾,是則返回true,否則返回false

  1. 替換字符串

    String str = "abcd, hello, yeh";
    String strnew = str.replace("e", "fff");
    System.out.println(strnew);

輸出:

abcd, hfffllo, yfffh

replace("被替換的內容","替換的內容")

  1. 截取字符串

    String str = "abc, hello, tom";
    String str1 = str.substring(0,3);
    System.out.println(str1);
    System.out.println(str.substring(5));

output:

abc
hello, tom

substring(截取開始位置索引,截取結束位置索引)

substring(截取結束位置索引)

  1. 去除字符串中的空格

有時候,你不想讓字符串中存在空格

String str = "   aba  c  ";
System.out.println(str);
System.out.println(str.trim());
System.out.println(str.replace(" ",""));

output:

   aba  c  
aba  c
abac

trim(),方法可以去除字符串兩端的空格,中間的空格去除不了

replace(" ",""),可以把字符串中所有的空格替換掉。

  1. 分割字符串

如果你想把一個字符串,按照某種分割方式分割成一個字符串數組,你可以這樣做:

String str = "red,green,yellow,blue";
String[] colors = str.split(",");
for (String color : colors) {
    System.out.println(color);
}

output

red
green
yellow
blue

split("分割點字符串"),參數是一個分割點,實例中把, 作爲一個分割點。返回一個分割後的一組字符串,也即是字符串數組。

  1. 轉換

實際上,你會經常遇到這種情況,想把一個數值轉換爲字符串,或者把字符串轉爲爲其他基本類型。

1、基本類型轉爲字符串

int i = 100;
double d = 292.02;
boolean b = true;

String str = i + "";
System.out.println(str);
Boolean b1 = b;
String bs = b1.toString();
System.out.println(bs);

output

100
true

基本類型變量可以直接使用 +"",轉換爲字符串。也可以使用其對應包裝類實例的toString()方法轉換爲字符串。

2、字符串轉爲基本類型

String is = "100";
int i = Integer.parseInt(is);
int sum = i + 200;
System.out.println(sum);

output

300

字符類型轉爲基本類型,可以使用基本類型對應的包裝類實例的 parseXX()方法,該實例中 Integer.parseInt(is)把字符串"100"轉爲int類型的100,可以進行運算。

  1. StringBuffer

你已經知道,可以使用 +連接多個變量,並轉換爲一個字符串類型的值。但是這種做法效率並不是很高,可以在低頻次、少量連接操作使用它。如果要高頻次、大量的連接字符串操作,可以使用 StringBuffer

String name = "tom";
int age = 28;
String job = "自由職業";
// tom, 28, 自由職業
StringBuffer buffer = new StringBuffer(name);
buffer.append(", ")
        .append(age)
        .append(", ")
        .append(job);
System.out.println(buffer.toString());

output:

tom, 28, 自由職業

append()方法用於連接字符串。可以高頻次使用,效率較高。

我只是展示了關於String字符串常用操作,當然它有很多個操作,如果用到其他方法,建議大家去查找 Java API.

如果你想學習編程,又沒有太多的預算或者自學N天無果。那你可以試試我的編程私教服務:JavaWeb全棧開發一對一編程私,屬於你的編程私人教練!
QQ:865729312

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章