------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
第一讲 API的String类
一,API简介
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,
目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,
或理解内部工作机制的细节。
本篇主要讲解API的各种常用类的功能及用法,其它一些不常用的请在API里面查找,代码就不一一实现了
二,String类
1.String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
例如:String str = "abc";//可以使用字面量直接赋值,不需要new
2.字符串是常量;它们的值在创建之后不能更改:
String str = "abc";
str = "bcd";//并没有将原来的"abc"的值更改。而是产生了新的空间,原值被丢弃了。
3.构造方法:
public String():无参的。构造一个空的字符串对象;内部没有任何的字符;
public String(byte[] bytes):通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
public String(byte[] bytes,int offset,int length):通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
参数: bytes - 要解码为字符的 byte
offset - 要解码的第一个 byte 的索引
length - 要解码的 byte字节的 数量
public String(char[] value):分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。
public String(char[] value,int offset,int count)
public String(String original):使用参数的String构造一个新的String
4.字符串内部是怎样存储字符串的呢?
1.一个字符串:一串"字符"
class String{
private char[] charArray = null;
public String(){
charArray = new char[0];
}
}
public class Demo {
public static void main(String[] args) {
//1.public String():
String s1 = new String();//0长度的字符串
String s2 = null;
System.out.println("s1 = |" + s1 + "|");//"空字符",无任何字符。代表0长度字符串。但s1不是空引用
System.out.println("s2 = " + s2);//null
System.out.println("s1 == null : " + (s1 ==null));//false
//如果s1不等于null,那么就可以访问内部的成员属性
//获取String中存储的字符的数量:length()方法
System.out.println("s1.length() : " + s1.length());//0
System.out.println("s2 == null : " + (s2 == null));//true
// System.out.println("s2.length() : " + s2.length());//编译通过,运行时异常:NullPointerException
//2.public String(byte[] bytes)
byte[] byteArray = {97,98,99};
String s3 = new String(byteArray);
System.out.println("s3 = " + s3);
//3.public String(byte[] bytes,int offset,int length)
byte[] byteArray2 = {97,98,99,100,101,102};//a,b,c,d,e,f
String s4 = new String(byteArray2,2,3);//取cde
// String s4 = new String(byteArray2,2,5);//提供的索引值和长度要在String内部的字符数量的范围内,否则运行时异常;
System.out.println("s4 = " + s4);
//4.public String(char[] value)
// char c1 = 'ab';//编译错误:只能包含一个字符
// char c2 = '';//编译错误:这个不代表空字符。'\u0000'
// char c3 = '你';//OK的
// char c5 = '你好';//编译错误
// char c6 = ',';//OK的
char[] charArray = {'a','b','你','好'};
String s5 = new String(charArray);
System.out.println("s5 = " + s5);
//5.public String(char[] value,int offset,int count)
String s6 = new String(charArray,2,2);//你好
System.out.println("s6 = " + s6);//跟byte数组那个构造方法一样,要注意索引的范围
//6.public String(Strin