Java字符串的十大问题
以下是有關Java字符串的十大常見問題 。
1.如何比較字符串? 使用“ ==”還是使用equals()?
簡而言之,“ ==”測試引用是否相等,而equals()測試值是否相等。 除非您要檢查兩個字符串是否是同一對象,否則應始終使用equals()。
如果您了解字符串實習的概念會更好。
2.為什么對于安全敏感信息,char []優于String?
字符串是不可變的 ,這意味著一旦創建它們,它們將保持不變,直到啟動垃圾收集器。使用數組,您可以顯式更改其元素。 這樣,安全敏感信息(例如密碼)將不會出現在系統中的任何位置。
3.我們可以在switch語句中使用字符串嗎?
是,對于版本7。從JDK 7開始 ,我們可以使用字符串作為切換條件。 在版本6之前,我們不能使用字符串作為切換條件。
| // java 7 only! switch (str.toLowerCase()) {case "a":value = 1;break;case "b":value = 2;break; } |
4.如何將字符串轉換為int?
| int n = Integer.parseInt("10"); |
簡單,但是經常使用,有時被忽略。
5.如何用空格字符分割字符串?
我們可以使用正則表達式簡單地進行拆分。 “ \ s”代表空格字符,例如“”,“ \ t”,“ \ r”,“ \ n”。
| String[] strArray = aString.split("\\s+"); |
6. substring()方法是否創建新的字符串?
答案是不。 substring()方法為一個chars數組提供了一個窗口,該chars數組表示現有的String,但不創建新的。 要創建一個新字符串,您可以添加一個空字符串,如下所示:
| str.substring(m, n) + "" |
這將創建一個新字符串。 上面的方法有時可以使您的代碼更快,因為垃圾收集器可以收集未使用的大字符串并僅保留子字符串。
在Oracle JDK 7中,substring()創建一個新字符串。 查看該圖以顯示JDK 6和JDK 7之間的substring()差異 。
7. String vs StringBuilder vs StringBuffer
String vs StringBuilder:StringBuilder是可變的,這意味著您可以在創建后對其進行修改。
StringBuilder與StringBuffer:StringBuffer是同步的,這意味著它是線程安全的,但比StringBuilder慢。
8.如何重復一個字符串?
在Python中,我們可以將多個數字重復一個字符串。 在Java中,我們可以使用Apache Commons Lang包中StringUtils的repeat()方法。
| 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.如何計算字符串中字符出現的次數?
使用來自Apache Commons lang的StringUtils。
| int n = StringUtils.countMatches("11112222", "1"); System.out.println(n); |
多一個
您知道如何檢測字符串是否僅包含大寫字母嗎?
相關文章:
- 該圖顯示了Java字符串的不變性
- Java代碼–將文件轉換為字符串
- 為什么我們需要軟件測試?
- Java基礎
翻譯自: https://www.javacodegeeks.com/2013/09/top-10-questions-of-java-strings.html
總結
以上是生活随笔為你收集整理的Java字符串的十大问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平安富盈360是不是日复利?
- 下一篇: 用Java分割大型XML文件