【Java基础】第十五课:API--String

特点:字符串是常量,它们不能创建后被改变。原因是在源码的定义中是这样的:

public final class String{
    /** The value is used for character storage. */
    private final char value[];
}

从这里可以看出:String这个类被定义成了final类,存储字符串的数组也被定义成了常量。所以才造成了它的这个特点。

构造方法:构造方法有两种,一种是:String(char[] value)   一种是String(String original)  ,这种构造我们经常用,它的简写是 String s="aaa"

常用方法:String的方法非常多,下面是它常用的:

验证:

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;
public class Test2_String {
	public static void main(String[] args) {
		//创建对象--触发构造函数  
//		String(char[] value) 
		char[] value= {'a','b','c','d'};
		String s=new String(value);
//		String(String original) 
		String s2="xiaoming";
		//方法测试
		System.out.println(s2.charAt(2));
		System.out.println(s2.concat("jack"));
		System.out.println(s2.endsWith("happy"));
		System.out.println(s2.equals("abcdef"));
		System.out.println(s2.indexOf("a"));
		System.out.println(s2.lastIndexOf("i"));
		System.out.println(s2.isEmpty());
		System.out.println(s2.length());
		System.out.println(s2.replace("a", "b"));
		System.out.println(s2.startsWith("abc"));
		System.out.println(s2.substring(3));
		System.out.println(s2.substring(3,6));
		System.out.println(s2.toUpperCase());
		System.out.println(s2.trim());
		byte[] bs=s2.getBytes();//把字符串中的数据存入byte里,
		System.out.println(Arrays.toString(bs));
		s2="0s0d0fg0g";
		String[] ss=s2.split("0");
		System.out.println(Arrays.toString(ss));
		System.out.println(String.valueOf(123)+456);
//		接收键盘输入的每个字符串然后打印出来----遍历字符串
		Scanner scan=new Scanner(System.in);
		String str=scan.nextLine();
		for (int i = 0; i < str.length(); i++) {
			System.out.println(str.charAt(i));
		}
	}
}

结果:

工具类:StringBuffer  和StringBulider,这两个类是用来做字符串的拼接用的,由于通过“+”来进行拼接需要的时间很长,于是这里用到了StringBuffer 和StringBulider,他们的用法相同。调用它们的append方法,可以加快效率。下面进行测验:

测试:



public class Test3_StringBuilder {
	public static void main(String[] args) {
		method();
//		method2();
	}
	private static void method2() {
		// TODO Auto-generated method stub
		String s="abcdefghijklmnopqrstuvwxyz";
		String aa="";
		long start=System.currentTimeMillis();
		for (int i = 0; i <10000; i++) {
			StringBuffer sb=new StringBuffer();
			sb.append(s);
		}
		long end=System.currentTimeMillis();
		System.out.println(end-start);
	}
	private static void method() {
		// TODO Auto-generated method stub
		//1:把指定字符串拼接一千次,并打印结果
		String s="abcdefghijklmnopqrstuvwxyz";
		String aa="";
		long start=System.currentTimeMillis();
		for (int i = 0; i <10000; i++) {
			aa=aa+s;
		}
		long end=System.currentTimeMillis();
		System.out.println(end-start);//168497
	}
}

结果:

如果用method2,那么结果是4.

可以看出这个工具类的效果十分强大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值