在項目中String是不可避免使用,包括數據之間的相互傳值,在處理id時,經常用到string的一些方法,現在總結一下:
認識String:
String 默認使用final修飾,不能被繼承;java字符串在內存中採用nunicode編碼方式,任何一個字符對應兩個字節的定長編碼;
String是放在常量池中,並儘量使用同一對象,重用靜態字符串;
IndexOf
使用indexOf實現檢索;
Int indexOf(String str) 在字符串中檢索到str,返回第一次出現的位置,如果檢索不到,那就返回-1;此方法嚐嚐用來檢驗字符串中有沒有包含某個字符串;
Int indexOf(String str,int fromIndex) 從字符串的指定位置開始檢索
Int lastIndexOf(String str,int from) str在字符串中多次出現時,將返回最後一個出現的位置
Substring
使用substring獲取子字符串
String substring(int beginIndex,int endIndex) 返回字符串中從下標開始到enindex結束的子字符串;注意:含頭不含尾
String substring(int beginIndex) 返回從該下標到結尾的子字符串;(含頭含尾)
一般我們經常使用該方法來去除字符串中最後的,號;
String str.substring(0,str.length()-1);
Trim
去掉一個字符串的前後的空餘
String username = “ good man ”
Username = username.trim();// good man
charAt
Char charAt(int index); 用於返回字符串指定未知的字符;
startsWith和endsWith
檢測一個字符串是否以指定字符串開頭或結尾
String str = “Thinking in java”;
System.out.println(str.endWith(“java”));//true
大小寫的轉換
str.toUpperCase();轉爲大寫
Str.toLowerCase();轉爲小寫
valueOf
將其他類型轉換爲字符串類型
/*
* valueOf
* 將其他類型轉爲字符串類型
*/
double pl = 3.1415926;
int value = 123;
boolean flag = true;
char[] charArr = {‘1’,’2’,’3’,’4’};
String str1 = String.valueOf(pl);
String str2 = String.valueOf(value);
String str3 = String.valueOf(flag);
String str4 = String.valueOf(charArr);
System.out.println(str1);//3.1415926
System.out.println(str2);//123
System.out.println(str3);//true
System.out.println(str4);//1234
Replace/replaceAll
替換字符串
Str = str.replace(“”,””);//性能偏低
Equals() //判斷字符串是否相等
equalsIgnoreCase() //忽略大小寫的情況下比較內容是否相等
== //判斷內容與地址是否相同
字符串的轉換:
1、將字符串轉換爲字符數組
Public char[] toCharArray();
2、 將字符串轉爲字符串數組
就是用split()方法;
下面是自己做的一些字符串的方法,其中有字符串之間的去重功能,這個在項目中也是用到的(比如去除重複的id)
public static void main(String[] args) {
/*
* valueOf
* 將其他類型轉爲字符串類型
*/
double pl = 3.1415926;
int value = 123;
boolean flag = true;
char[] charArr = {'1','2','3','4'};
String str1 = String.valueOf(pl);
String str2 = String.valueOf(value);
String str3 = String.valueOf(flag);
String str4 = String.valueOf(charArr);
System.out.println(str1);//3.1415926
System.out.println(str2);//123
System.out.println(str3);//true
System.out.println(str4);//1234
/*
* 字符串與int之間的轉化
*/
String a = "123";
int aa = Integer.parseInt(a);
int bb = 456;
String b = Integer.toString(bb);
System.out.println(aa);
System.out.println(b);
/*
* 字符串與doube之間轉化
*
*/
String c = "3.14";
double cc = Double.parseDouble(c);
System.out.println(cc);
/*
* 字符串與date之間轉化
*/
//date轉爲String
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String dateStr = sdf.format(date);
//String轉爲date
Date date1 = null;
try {
date1 = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(dateStr);
System.out.println(sdf.format(date1));
demo1 demo = new demo1();
demo.distinct1();
demo.distinct2();
}
//字符創之間去重-情景1
public String distinct1(){
String str1 = "12312,122312,12334,56658,89895455,234,456";
String str2 = "234,456,12334";
StringBuffer strBf = new StringBuffer();
String[] strArr2 = str2.split(",");
//現剔除str2中存在的
for (int i = 0; i < strArr2.length; i++) {
if(str1.indexOf(strArr2[i])!= -1){
str1 = str1.replace(strArr2[i], "");
}
}
//下面主要是實現去重後的str1的重新組裝,注意要去掉最後的“,”號
String[] strArr1 = str1.split(",");
for (int s = 0; s < strArr1.length; s++) {
if(strArr1[s] != ""){
if(s != strArr1.length-1 ){
strBf.append(strArr1[s]+",");
}else{
strBf.append(strArr1[s]);
}
}
}
str1 = new String(strBf);
System.out.println(str1);
return str1;
}
//字符串去重-情景2
public String distinct2(){
String aa = "asdaeaaasssfdfdggfgfywvcj";
StringBuffer strBuf = new StringBuffer();
char[] aaArr = aa.toCharArray();
for (int i = 0; i < aaArr.length; i++) {
if(strBuf.indexOf(String.valueOf(aaArr[i])) == -1){
strBuf.append(aaArr[i]);
}
}
aa = new String(strBuf);
System.out.println(aa);
return aa;
}