一.Java字元串類基本概念
在JAVA語言中,字元串資料實際上由String類所實作的。Java字元串類分為兩類:一類是在程式中不會被改變長度的不變字元串;二類是在程式中會被改變長度的可變字元串。Java環境為了存儲和維護這兩類字元串提供了 String和StringBuffer兩個類。
一、建立字元串
例: Stringstr=new("This is a String");
或者 Stringstr="This is a String";
二、得到字元串對象的有關資訊
1.通過調用length()方法得到String的長度.
例:
String str="Thisis a String";
int len =str.length();
2.StringBuffer類的capacity()方法與String類的 length()的方法類似,但是她測試是配置設定給StringBuffer的記憶體空間的大小,而不是目前被使用了的記憶體空間。
3.如果想确定字元串中指定字元或子字元串在給定字元串的位置,可以用 indexOf()和lastIndexOf()方法。
String str="Thisis a String";
Int index1 =str.indexOf("i"); //index=2
Intindex2=str.indexOf(‘i‘,index+1); //index2=5
Intindex3=str.lastIndexOf("I"); //index3=15
Intindex4=str.indexOf("String"); //index4=10
三、String對象的比較和操作
1.String對象的比較
String類的equals()方法用來确定兩個字元串是否相等。
String str="Thisis a String";
Boolean result=str.equals("This is another String");
//result=false
2.String對象的通路
A、方法charAt()用以得到指定位置的字元。
String str="Thisis a String";
char chr=str.charAt(3); //chr="i"
B、方法getChars()用以得到字元串的一部分字元串
public voidgetChars(int srcBegin,intsrcEnd,char[]dst,intdstBegin)
String str="Thisis a String";
Char chr =new char[10];
Str.getChars(5,12,chr,0); //chr="isa St"
C、subString()是提取字元串的另一種方法,它可以指定從何處開始提取字元串以及何處結束。
3.操作字元串
A、replace()方法可以将字元串中的一個字元替換為另一個字元。
String str="Thisis a String";
String str1=str.replace(‘T‘,‘t‘); //str1="thisis a String"
B、concat()方法可以把兩個字元串合并為一個字元串。
String str="Thisis a String";
String str1=str.concat("Test"); //str1="Thisis a String Test"
C、toUpperCase()和toLowerCase()方法分别實作字元串大小寫的轉換。
String str="THISIS A STRING";
String str1=str.toLowerCase(); //str1="thisis a string";
D、trim()方法可以将字元串中開頭和結尾處的空格去掉.
String str="Thisis a String ";
String str1=str.trim(); //str1="This is a String"
E、String類提供靜态方法valueOf(),它可以将任何類型的資料對象轉換為一個字元串。如
System.out.println(String,ValueOf(math,PI));
四、修改可變字元串
StringBuffer類為可變字元串的修改提供了3種方法,在字元串中間插入和改變某個位置所在的字元。
1.在字元串後面追加:用append()方法将各種對象加入到字元串中。
2.在字元串中間插入:用insert()方法。例
StringBuffer str=new StringBuffer("Thisis a String");
Str.insert(9,"test");
System.out.println(str.toString());
這段代碼輸出為:Thisis a test String
3.改變某個位置所在的字元,用setCharAt()方法。
StringBuffer sb =new StringBuffer("aaaaaa");
sb.setCharAt(2, “b”); // 結果aabaaa
二.字元串分割
1.利用字元串類的split方法進行分割
public String[] splitString(String str,String sdelimiter)...{
String[] array=str.split(sdelimiter);
return array;
}
2.利用StringTokenizer來進行字元串分割
public String[] useStringTokenizer(String str,String sdelimiter)...{
StringTokenizer token=new StringTokenizer(str,sdelimiter);
String[] array=new String[token.countTokens()];
int i=0;
while(token.hasMoreTokens())...{
array[i]=token.nextToken();
i++;
}
return array;
}
三.字元串數組排序
public String[] sort(String[] str,int flag)...{
if(str==null||str.length==0)
throw new IllegalArgumentException();
String temp=str[0];
//順序排列 ,即從小到大
if(flag==0)...{
for(int i=0;i<str.length-1;i++)...{
for(int j=i+1;j<str.length;j++)...{
if(str[i].compareTo(str[j])>0)...{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}
}
else if(flag==1)...{//倒序排列
for(int i=0;i<str.length-1;i++)...{
for(int j=i+1;j<str.length;j++)...{
if(str[i].compareTo(str[j])<0)...{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}
}
return str;
}
四.使用Hashtable對字元串進行碰撞
利用hashtable對字元串進行過濾,兩個字元數組之間的比較,對字元串數組進行過濾
1.在一些字元串數組中,常會有重複的記錄,比如手機号碼,我們可以通過Hashtable來對其進行過濾
public String[] checkArray(String[] str)...{
Hashtable<String, String> hash=new Hashtable<String, String>();
for(int i=0;i<str.length;i++)...{
if(!hash.containsKey(str[i]))
hash.put(str[i], str[i]);
}
Enumeration enumeration=hash.keys();
String[] str_new=new String[hash.size()];
int i=0;
while(enumeration.hasMoreElements())...{
str_new[i]=enumeration.nextElement().toString();
i++;
}
return str_new;
}
示例:
String[]mobile={"13811071500","13811071500","13811071501","13811071503","13811071501"};
mobile=checkArray(mobile);
for(int i=0;i<mobile.length;i++)
System.out.println(mobile[i]);
輸出結果為:
13811071503
13811071501
13811071500
2.A,B均為字元串數組,找出在A中存在,而在B中不存在的字元串
public String[] compareArray(String[] A,String[] B){
Hashtable<String, String> hash=newHashtable<String, String>();
Hashtable<String, String>hash_new=new Hashtable<String, String>();
for(int i=0;i<B.length;i++)
hash.put(B[i], B[i]);
for(int i=0;i<A.length;i++){
if(!hash.containsKey(A[i]))
hash_new.put(A[i], A[i]);
}
String[] C=new String[hash_new.size()];
int i=0;
Enumeration enumeration=hash_new.keys();
while(enumeration.hasMoreElements()){
C[i]=enumeration.nextElement().toString();
i++;
}
return C;
}
示例:
String[] mobile1={"13811071500","13811071501","13811071502","13811071503","13811071504"};
String[]mobile2={"13811071500","13811071505","13811071502","13811071506","13811071504"};
String[]mobile3=compareArray(mobile1,mobile2);
for(int i=0;i<mobile3.length;i++)
System.out.println(mobile[i]);
輸出結果:
13811071503
13811071501
存在的問題:
每次都是倒序,可以再對程式稍加改動,變成正序。
3.将一個字元串數組中某一個特定的字元串過濾掉
public String[] removeStrFromArray(String[] str_array,String
str_remove)...{
Hashtable<String, String> hash=new Hashtable<String, String>();
for(int i=0;i<str_array.length;i++)...{
if(!str_array[i].equals(str_remove))
hash.put(str_array[i], str_array[i]);
}
//生成一個新的數組
String[] str_new=new String[hash.size()];
int i=0;
Enumeration enumeration=hash.keys();
while(enumeration.hasMoreElements())...{
str_new[i]=enumeration.nextElement().toString();
i++;
}
return str_new;
}
文章摘自百度文庫。
一.Java字元串類基本概念
在JAVA語言中,字元串資料實際上由String類所實作的。Java字元串類分為兩類:一類是在程式中不會被改變長度的不變字元串;二類是在程式中會被改變長度的可變字元串。Java環境為了存儲和維護這兩類字元串提供了 String和StringBuffer兩個類。
一、建立字元串
例: Stringstr=new("This is a String");
或者 Stringstr="This is a String";
二、得到字元串對象的有關資訊
1.通過調用length()方法得到String的長度.
例:
String str="Thisis a String";
int len =str.length();
2.StringBuffer類的capacity()方法與String類的 length()的方法類似,但是她測試是配置設定給StringBuffer的記憶體空間的大小,而不是目前被使用了的記憶體空間。
3.如果想确定字元串中指定字元或子字元串在給定字元串的位置,可以用 indexOf()和lastIndexOf()方法。
String str="Thisis a String";
Int index1 =str.indexOf("i"); //index=2
Intindex2=str.indexOf(‘i‘,index+1); //index2=5
Intindex3=str.lastIndexOf("I"); //index3=15
Intindex4=str.indexOf("String"); //index4=10
三、String對象的比較和操作
1.String對象的比較
String類的equals()方法用來确定兩個字元串是否相等。
String str="Thisis a String";
Boolean result=str.equals("This is another String");
//result=false
2.String對象的通路
A、方法charAt()用以得到指定位置的字元。
String str="Thisis a String";
char chr=str.charAt(3); //chr="i"
B、方法getChars()用以得到字元串的一部分字元串
public voidgetChars(int srcBegin,intsrcEnd,char[]dst,intdstBegin)
String str="Thisis a String";
Char chr =new char[10];
Str.getChars(5,12,chr,0); //chr="isa St"
C、subString()是提取字元串的另一種方法,它可以指定從何處開始提取字元串以及何處結束。
3.操作字元串
A、replace()方法可以将字元串中的一個字元替換為另一個字元。
String str="Thisis a String";
String str1=str.replace(‘T‘,‘t‘); //str1="thisis a String"
B、concat()方法可以把兩個字元串合并為一個字元串。
String str="Thisis a String";
String str1=str.concat("Test"); //str1="Thisis a String Test"
C、toUpperCase()和toLowerCase()方法分别實作字元串大小寫的轉換。
String str="THISIS A STRING";
String str1=str.toLowerCase(); //str1="thisis a string";
D、trim()方法可以将字元串中開頭和結尾處的空格去掉.
String str="Thisis a String ";
String str1=str.trim(); //str1="This is a String"
E、String類提供靜态方法valueOf(),它可以将任何類型的資料對象轉換為一個字元串。如
System.out.println(String,ValueOf(math,PI));
四、修改可變字元串
StringBuffer類為可變字元串的修改提供了3種方法,在字元串中間插入和改變某個位置所在的字元。
1.在字元串後面追加:用append()方法将各種對象加入到字元串中。
2.在字元串中間插入:用insert()方法。例
StringBuffer str=new StringBuffer("Thisis a String");
Str.insert(9,"test");
System.out.println(str.toString());
這段代碼輸出為:Thisis a test String
3.改變某個位置所在的字元,用setCharAt()方法。
StringBuffer sb =new StringBuffer("aaaaaa");
sb.setCharAt(2, “b”); // 結果aabaaa
二.字元串分割
1.利用字元串類的split方法進行分割
public String[] splitString(String str,String sdelimiter)...{
String[] array=str.split(sdelimiter);
return array;
}
2.利用StringTokenizer來進行字元串分割
public String[] useStringTokenizer(String str,String sdelimiter)...{
StringTokenizer token=new StringTokenizer(str,sdelimiter);
String[] array=new String[token.countTokens()];
int i=0;
while(token.hasMoreTokens())...{
array[i]=token.nextToken();
i++;
}
return array;
}
三.字元串數組排序
public String[] sort(String[] str,int flag)...{
if(str==null||str.length==0)
throw new IllegalArgumentException();
String temp=str[0];
//順序排列 ,即從小到大
if(flag==0)...{
for(int i=0;i<str.length-1;i++)...{
for(int j=i+1;j<str.length;j++)...{
if(str[i].compareTo(str[j])>0)...{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}
}
else if(flag==1)...{//倒序排列
for(int i=0;i<str.length-1;i++)...{
for(int j=i+1;j<str.length;j++)...{
if(str[i].compareTo(str[j])<0)...{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}
}
return str;
}
四.使用Hashtable對字元串進行碰撞
利用hashtable對字元串進行過濾,兩個字元數組之間的比較,對字元串數組進行過濾
1.在一些字元串數組中,常會有重複的記錄,比如手機号碼,我們可以通過Hashtable來對其進行過濾
public String[] checkArray(String[] str)...{
Hashtable<String, String> hash=new Hashtable<String, String>();
for(int i=0;i<str.length;i++)...{
if(!hash.containsKey(str[i]))
hash.put(str[i], str[i]);
}
Enumeration enumeration=hash.keys();
String[] str_new=new String[hash.size()];
int i=0;
while(enumeration.hasMoreElements())...{
str_new[i]=enumeration.nextElement().toString();
i++;
}
return str_new;
}
示例:
String[]mobile={"13811071500","13811071500","13811071501","13811071503","13811071501"};
mobile=checkArray(mobile);
for(int i=0;i<mobile.length;i++)
System.out.println(mobile[i]);
輸出結果為:
13811071503
13811071501
13811071500
2.A,B均為字元串數組,找出在A中存在,而在B中不存在的字元串
public String[] compareArray(String[] A,String[] B){
Hashtable<String, String> hash=newHashtable<String, String>();
Hashtable<String, String>hash_new=new Hashtable<String, String>();
for(int i=0;i<B.length;i++)
hash.put(B[i], B[i]);
for(int i=0;i<A.length;i++){
if(!hash.containsKey(A[i]))
hash_new.put(A[i], A[i]);
}
String[] C=new String[hash_new.size()];
int i=0;
Enumeration enumeration=hash_new.keys();
while(enumeration.hasMoreElements()){
C[i]=enumeration.nextElement().toString();
i++;
}
return C;
}
示例:
String[] mobile1={"13811071500","13811071501","13811071502","13811071503","13811071504"};
String[]mobile2={"13811071500","13811071505","13811071502","13811071506","13811071504"};
String[]mobile3=compareArray(mobile1,mobile2);
for(int i=0;i<mobile3.length;i++)
System.out.println(mobile[i]);
輸出結果:
13811071503
13811071501
存在的問題:
每次都是倒序,可以再對程式稍加改動,變成正序。
3.将一個字元串數組中某一個特定的字元串過濾掉
public String[] removeStrFromArray(String[] str_array,String
str_remove)...{
Hashtable<String, String> hash=new Hashtable<String, String>();
for(int i=0;i<str_array.length;i++)...{
if(!str_array[i].equals(str_remove))
hash.put(str_array[i], str_array[i]);
}
//生成一個新的數組
String[] str_new=new String[hash.size()];
int i=0;
Enumeration enumeration=hash.keys();
while(enumeration.hasMoreElements())...{
str_new[i]=enumeration.nextElement().toString();
i++;
}
return str_new;
}
文章摘自百度文庫。