十個最常見的java字符串問題

原文戳這里:Top 10 questions of Java Strings

以下是10個最常見的java字符串問題。

1. 如何比較字符串?用"=="還是用equals()?

簡單的說,"=="用來測試是否引用了同一個字符串對象。equals()用來測試字符串值是否相等。除非你想要檢測兩個字符串是否是相同的對象,否則你應(yīng)該總是使用equals()。

2. 對于安全敏感類的信息,為什么char[]優(yōu)于String?

字符串是不可變的,這意味著一旦它們被創(chuàng)建,它們將保持不變,直到垃圾收集器清理為止。對于數(shù)組,你可以明確的修改它的元素。這樣一來,安全性敏感信息(比如密碼)將不會出現(xiàn)在系統(tǒng)的任何地方。

3. 是否可以在switch語句中使用String

java7及以后是可以的。從JDK7開始,我們可以使用string作為switch的條件,在JDK6之前,我們不能使用string作為switch語句的條件。

// java 7 only!
switch (str.toLowerCase()) {
    case "a":
         value = 1;
         break;
    case "b":
         value = 2;
         break;
}

4.如何把string轉(zhuǎn)成int?

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

簡單,但是使用很頻繁還容易忘記。

5.如何用空白符分割字符串?

String[] strArray = aString.split("\\s+");

6.substring()方法究竟做了什么?

在 JDK6中,substring()方法給出了一個表示現(xiàn)有String的字符數(shù)組的窗口,而不是創(chuàng)建一個新字符串。為了創(chuàng)建一個由新char數(shù)組表示的新字符串,你可以添加一個空字符串,代碼如下所示:

str.substring(m, n) + ""

這將創(chuàng)建一個表示新字符串的新的char數(shù)組。上面的代碼,有時會讓你的代碼運(yùn)行更快,因?yàn)槔厥掌鲿占療o用的大字符串,并僅僅保留子字符串。

在Oracle JDK 7中,substring()會創(chuàng)建一個新的char數(shù)組,而不是使用現(xiàn)有的char數(shù)組。想了解substirng()在JDK6跟JDK7之間的差異,請戳這篇文章substring() difference between JDK 6 and JDK 7.

7. String vs StringBuilder vs StringBuffer

String vs StringBuilder: StringBuilder是可變的,這意味著它創(chuàng)建之后仍可以修改。

StringBuilder vs StringBuffer: StringBuffer是同步的,這意味著它是線性安全的,但是比StringBuilder更慢。

8.如何重復(fù)一個字符串?

在Python里,我們可以乘以一個數(shù)字來重復(fù)一個字符串。在Java中,我們可以使用StringUtils中的repeat()方法來實(shí)現(xiàn)。StringUtils來自 Apache Commons Lang package.

import org.apache.commons.lang3.StringUtils;

String str = "abcd";
String repeated = StringUtils.repeat(str,3);

9.如何把字符串轉(zhuǎn)換為日期?

try {
        String str = "Sep 17, 2013";
        Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
        System.out.println(date);
 }catch (Exception e){
        
 }

10.如何去統(tǒng)計一個字符在字符串中出現(xiàn)的次數(shù)?

int n = StringUtils.countMatches("11112222", "1");
System.out.println(n);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計...
    子非魚_t_閱讀 4,667評論 1 44
  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識,c語言,java語言,單片機(jī)的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,416評論 0 7
  • 話說一天柳下惠躲進(jìn)一座寺廟,外面下著石頭般大雨,一女子渾身濕透進(jìn)寺廟避雨,因?yàn)樘鞖夂渑颖粌龅臏喩矶哙?,柳下惠決...
    馬路情哥閱讀 7,093評論 0 1
  • 通常每個人學(xué)習(xí),提煉出來的知識,有時候感受并不深刻,就如最近自己看《爆裂》這本書時,里面的概念完全沒有感覺,但是往...
    別停趙越閱讀 2,056評論 1 2
  • 炒股 股評師、薦股師一定會堅定地看多,不把更多的人忽悠進(jìn)來,他們吃什么。 旅游 我曾經(jīng)閑過一段時間??墒俏胰ψ永锏?..
    HapLeo閱讀 218評論 0 0

友情鏈接更多精彩內(nèi)容