程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中String類(字符串操作)的10個罕見成績息爭決辦法

Java中String類(字符串操作)的10個罕見成績息爭決辦法

編輯:關於JAVA

Java中String類(字符串操作)的10個罕見成績息爭決辦法。本站提示廣大學習愛好者:(Java中String類(字符串操作)的10個罕見成績息爭決辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中String類(字符串操作)的10個罕見成績息爭決辦法正文


本文引見Java中關於String最多見的10個成績:

1. 字符串比擬,應用 "==" 照樣 equals() ?
簡略來講, "==" 斷定兩個援用的是否是統一個內存地址(統一個物理對象).
而 equals 斷定兩個字符串的值能否相等.
除非你想斷定兩個string援用能否統一個對象,不然應當老是應用 equals()辦法.
假如你懂得 字符串的駐留 ( String Interning ) 則會更好地輿解這個成績

2. 關於敏感信息,為什麼應用char[]要比String更好?
String是弗成變對象, 意思是一旦創立,那末全部對象就弗成轉變. 即便老手認為String援用變了,現實上只是(指針)援用指向了另外一個(新的)對象.
而法式員可以明白地對字符數組停止修正,是以敏感信息(如暗碼)不輕易在其他處所裸露(只需你用完後對char[]置0).

3. 在switch語句中應用String作為case前提?
從 JDK7 開端,這是可以的,煩瑣一句,Java 6 及之前的版本都不支撐如許做.

// 只在java 7及更高版本有用! 
switch (str.toLowerCase()) { 
      case "a": 
           value = 1; 
           break; 
      case "b": 
           value = 2; 
           break; 



4. 轉換String為數字
關於異常年夜的數字請應用Long,代碼以下

int age = Integer.parseInt("10"); 
long id = Long.parseLong("190"); // 假設值能夠很年夜. 


5. 若何經由過程空白字符拆分字符串
String 的 split()辦法吸收的字符串會被當作正則表達式解析,
"\s"代表空白字符,如空格" ",tab制表符"\t", 換行"\n",回車"\r".
而編譯器在對源代碼解析時,也會停止一次字面量轉碼,所以須要"\\s".

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


6. substring()  辦法外部是若何處置的?
在JDK6中,substring()辦法照樣共用本來的char[]數組,經由過程偏移和長度結構了一個"新"的String。
想要substring()獲得一個全新創立的對象,應用以下這類方法:

String sub = str.substring(start, end) + ""; 

固然 Java 7 中,substring()創立了一個新的char[] 數組,而不是共用.
想要懂得更多,請參考:  JDK6和JDK7中substring()辦法及其差別

7. String vs StringBuilder vs StringBuffer
StringBuilder 是可變的,是以可以在創立今後修正外部的值.
StringBuffer 是同步的,是以是線程平安的,但效力絕對更低.

8. 若何反復拼接統一字符串?
計劃1: 應用Apache Commons Lang 庫的 StringUtils 對象類.

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

計劃2:
應用 StringBuilder 結構. 更靈巧.

String src = "name"; 
int len = src.length(); 
int repeat = 5; 
StringBuilder builder = new StringBuilder(len * repeat); 
for(int i=0; i<repeat; i++){ 
  builder.append(src); 

String dst = builder.toString(); 


9. 若何將String轉換為日期?

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
String str = "2013-11-07"; 
Date date = format.parse(str); 
System.out.println(format.format(date));//2013-11-07 


10. 若何統計某個字符湧現的次數?
異樣應用Apache Commons Lang 庫 StringUtils  類:

int n = StringUtils.countMatches("11112222", "1"); 
System.out.println(n); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved