String类基本用法
1.String类又称作不可变字符序列。
2.String位于java.lang包中,Java程序默认导入java.lang包下的所有类。
3. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
4.其元素必须是相同类型,不允许出现混合类型。
5. 数组类型可以是任何数据类型,包括基本类型和引用类型
String str4="19"+111; //加号左由边只要有一个为字符串,是字符串连接符
//字符串常量会被放到字符串常量池里边
String str10="ceshi";
String str11="ceshi";
String str12=new String("ceshi");
System.out.println(str10==str11); //true 相同的对象
System.out.println(str10==str12); //结果为false,str12是一个新建的对象
System.out.println(str10.equals(str12)); //比较字符串使用equals,比较的是内容
}
> 编译结果
> true
false
true
字符串类的方法
1.
String s1="come java";
String s2="Come java";
System.out.println(s1.charAt(5)); //提取索引下标为5的字符,抛异常返回-1
System.out.println(s2.length()); //获取(返回)字符串的长度
System.out.println(s1.equals(s2)); //判断两个字符串的值是否相等
System.out.println(s1.equalsIgnoreCase(s2)); //比较两个字符串的值,忽略大小写
System.out.println(s1.indexOf("java")); //字符串S1中是否包含java
String s=s1.replace(' ', '*'); //将S1中的空格替换成*
System.out.println(s);
String s3="";
String s4="Test String !";
System.out.println(s4.startsWith("Test")); //是否以Test开头
System.out.println(s4.endsWith("!")); //是否以!结尾
String S=s4.substring(3); //(截取)从下标第3位开始到结尾结束
System.out.println(S);
String S1=s4.substring(2, 6); //(截取)从下标第2位开始到第6位结束,但是不包括第6位
System.out.println(S1);
String S3=s4.toLowerCase(); //全部大写转成小写
System.out.println(S3);
String S4=s4.toUpperCase(); //全部转大写
System.out.println(S4);
String s5=" hao are you?"; //去除字符串首尾的空格,注意:中间的空格不能去除
String S5=s5.trim();
System.out.println(s5);
System.out.println(S5);
数组的拷贝
arraycopy
该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素
/*数组的拷贝*/
public static void testCopy() {
String[] str= {"aa","bb","cc","dd","ee"};
String[] str2=new String[10];
//数组的拷贝方法System.arraycopy();
System.arraycopy(str, 2, str2, 3, 3);
/* System.arraycopy(src, srcPos, dest, destPos, length);
* src指选择被Copy的数组对象
* srcPos表示被拷贝的数组对象从第几个位置开始
* dest表示Copy的数组对象
* destPos表示拷贝的数组对象Copy在第几个位置
* length表示拷贝的长度
*/
for(int i=0;i<str2.length;i++) {
/*打印10个数组*/
System.out.println(str2[i]);
}
System.out.println("*******************");
}
//删除数组中的指定索引的元素,本质上还是数组的拷贝,
public static void testBasicCopy(){
String[] s1= {"aa","bb","cc","dd","ee"};
String[] s2=new String[5];
System.arraycopy(s1, 0, s1, 1-1, s1.length);
s1[s1.length-5]=null;//重新给删除的数赋值没空(null)
for(int i=0;i<s1.length;i++) {
/*打印10个数组*/
System.out.println(s1[i]);
}
}
//删除数组中的指定索引位置,并将原数组返回
public static String[] stringmethod(String[]s,int index) {
System.arraycopy(s, index+1, s, index, s.length-index-1);
s[s.length-1]=null;
for(int i=0;i<s.length;i++) {
System.out.println(s[i]);
}
/*返回数组*/
return s;
}
//数组扩容(实际也是Copy)先定义一个更大的数组,然后原封不动的Copy到新数组中
public static void dilatation() {
String[] S1= {"1","2","3"};
/*数组扩容*/
String[] S2=new String[S1.length+10];
System.arraycopy(S1, 0, S2, 0, S1.length);
}