JavaRush /Java Blog /Random-TW /關於 Java 字串的 10 個最常見問題
ext4
等級 20

關於 Java 字串的 10 個最常見問題

在 Random-TW 群組發布

這裡提到了 10 個關於 Java 字串的最常見問題

[翻譯] Java 中字串最常見的 10 個問題 - 1
  1. 如何比較字串?使用什麼:「==」或equals()

    簡而言之,「==」比較對字串的引用,但equals()比較這些字串中包含的值。如果您不想檢查兩個字串是否是同一對象,那麼您應該使用equals().

    了解字串池的概念也很有好處。

  2. 為什麼優先使用char[]字串 ( String) 來保護敏感資訊?

    字串是不可變的。這意味著一旦創建了字串,在垃圾收集器運行之前它不會被修改。對於數組來說,很明顯我們可以更改它的元素。這樣,敏感資訊(例如密碼)將不會以明文形式儲存在程式中的任何位置。

  3. 使用switch 語句時可以將字串當作參數傳遞嗎?

    是的,從 JDK 版本 7 開始。以前,在版本 6 中,這是不可能的。

    // java 7 only!
    switch (str.toLowerCase()) {
          case "a":
               value = 1;
               break;
          case "b":
               value = 2;
               break;
    }
  4. 如何將字串轉換為整數值?

    int n = Integer.parseInt("10");

    Java 中的其他基本型別也是如此。

  5. 如何將字串拆分為空格分隔的行?

    最簡單的方法是使用正規表示式。「\s」 充當空白字元的替代品,例如「 」、「\t」、「\r」、「\n」。

    String[] strArray = aString.split("\\s+");
  6. <方法實際上做了什麼substring()

    在 JDK 6 中,該方法substring()顯示現有字串中的部分字符,但沒有建立該字串的單獨實例。若要建立一個表示為字元陣列的新字串,您可以新增一些空字串,例如,如下所示:

    str.substring(m, n) + ""

    結果是一個字元數組,這是我們的新字串。這種方法有時可以減少程式碼執行時間,因為垃圾收集器可以銷毀未使用的大字串並僅儲存子字串。

    在 Oracle JDK 7 中,此方法substring()會建立一個新的字元數組,而不使用現有的字元數組。您也可以查看代表 JDK 6 和 JDK 7 中 substring() 方法之間差異的圖表。

  7. String、StringBuilder、StringBuffer

    Stringvs StringBuilderStringBuilder可變,這意味著我們可以在物件創建後更改其內容。

    StringBuildervs StringBufferStringBuffer同步,這意味著它在同時從多個執行緒使用時可以正確運行,但比StringBuilder.

  8. 如何將一行重複多次?

    在Python中,我們可以簡單地將一個字串乘以一個數字n,然後它就會重複n次。repeat()在 Java 中,我們可以使用 Apache Commons Lang 庫類別中的方法StringUtils

    String str = "abcd";
    String repeated = StringUtils.repeat(str,3);
    //abcdabcdabcd
  9. 如何將字串轉換為日期?

    String str = "Sep 17, 2013";
    Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
    System.out.println(date);
    //Tue Sep 17 00:00:00 EDT 2013
  10. 如何統計字串中某個字元出現的次數?

    StringUtils使用Apache Commons Lang 庫中的類別。

    int n = StringUtils.countMatches("11112222", "1");
    System.out.println(n);
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION