字符串String是一个特殊的对象 一旦确定就不能改变。
比如String a =”abc“;和 String a = new String(“abc”);
是一样的,还有如果a改变值比如a=”sss”;这是a变量指向的对象变了 ,并不是abc变了 这个abc还在内存中
如果一个字符串abc在内存中已经存在,那么String b=”abc”;不会再创建对象,而是b这个变量指向abc这个对象。
String常见方法
1.获取
length()获取字符串长度
charAt(4)获取4索引的字符
indexof(‘a’,3);从索引3开始,第一次出现的a在第几个索引
indexof(str,3);从索引3开始,第一次出现str字符串的索引
lastindexof(‘a’)从末尾开始看,第一次出现a在第几个索引
….前面加一个last都是从后面开始看,出现那个字符串的索引
2.判断
contain(str);字符串中是否存在一个str子串
isempty()字符串是否为空
startwith(str)字符串是否以str为开头
endwith(str)字符串是否以str结尾
equals(str)判断内容是否相同
equalsignore(str)判断内容是否相同忽视大小写
3.转换
1.将字符数组转换成字符串
string(char[])将字符数组转换成字符串
string(char[], off,count)从off开始count个字符转换成字符串
静态方法
static String valueof(char[])将字符数组转换成字符串
static String valueof(char[], off,count)从off开始count个字符转换成字符串
2.将字符串转成字符数组
char[] charArray();
3.将字节数组转换成字符串
String(byte[])
String (byte[],off,count)
4.字符串转换成字节数组、
byte[] getbytes()
5.基本数据类型转换成字符串
static valueof(int/double/….)
4. 替换
String replace(oldchar,newchar);
5.切割
String split(regex)
6.子串获取字符串一部分
String substring(begin);
String substring(begin,end);
7. 转换,去空格,比较
1.转换大小写
String touppercase();大写
String tolowercase();小写
2.将字符串两端多余空格去除
String trim();
3.对两个字符创进行自然顺序比较
int compareto(String)
看完了可以练习一下
1.去两端空格
public class test {
public static void main(String[] args) {
String str =" abc bc ";
teim(str);
}
public static void teim(String str){
char[] a = str.toCharArray();
int s=0;
int k = a.length-1;
//System.out.println(a[s]);
while(s<k&&a[s]==' '){
s++;
}
while(s<k&&a[k]==' '){
k--;
}
System.out.println( str.substring(s, k+1));
}
}
或者
`public static void main(String[] args) {
String str =" abc bc ";
System.out.println(str.trim());}
2.字符串反转,把一个字符串的内容反转过来
public class fan {
public static void main(String[] args) {
String str ="absdef";
char[] a= str.toCharArray();
vers(a);
System.out.println(a);
}
public static void vers(char[] a){
int s=0;
int k=a.length-1;
while(s<=k){
ver(a,s,k);
s++;
k--;
}
}
public static void ver(char[] a ,int s,int k){
char b =0;
b =a[s];
a[s]=a[k];
a[k]=b;
}
}
3.一个字符串在另一个字符串出现的次数
public class chu {
public static void main(String[] args) {
String a ="abcdefgksfbcd";
int c=coun(a,"bc");
System.out.println(c);
}
public static int coun(String a,String key){
int count=0;
int index=0;
while((index=a.indexOf(key))!=-1){
a=a.substring(index+key.length());
count++;
}
return count;
}
}
4.获取两个字符串相同的最大子串
public class tong {
public static void main(String[] args) {
String a="nihaohellosbhello";
String b ="haonihellosnihao" ;
System.out.println(sop(a,b));
}
public static String sop(String a,String b){
for(int i=0;i<b.length();i++){
for(int y=0, z=b.length()-i; z!=b.length()+1; y++, z++ ){
String temp =b.substring(y, z);
if(a.indexOf(temp)!=-1){
return temp;
}
}
}
return " ";
}
}