黑马程序员技术交流社区
标题: 技术交流String,集合基础 [打印本页]
作者: 程序员_xiao明 时间: 2018-5-12 23:12
标题: 技术交流String,集合基础
String类
A:"abc"是String类的一个实例,或者成为String类的一个对象
B:字符串字面值"abc"也可以看成是一个字符串对象
C:字符串是常量,一旦被赋值,就不能被改变
D:字符串本质是一个字符数组
String类的构造方法
String(String original):把字符串数据封装成字符串对象
String(char[] value):把字符数组的数据封装成字符串对象
String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
常用构造方法
* String:字符串类
* 由多个字符组成的一串数据
* 字符串其本质是一个字符数组
* 构造方法:
* String(String original):把字符串数据封装成字符串对象
* String(char[] value):把字符数组的数据封装成字符串对象
* String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
*
注意:字符串是一种比较特殊的引用数据类型,直接输出字符串对象输出的是该对象中的数据。
* String:字符串类
* 由多个字符组成的一串数据
* 字符串其本质是一个字符数组
*
* 构造方法:
* String(String original):把字符串数据封装成字符串对象
* String(char[] value):把字符数组的数据封装成字符串对象
* String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
注意:字符串是一种比较特殊的引用数据类型,直接输出字符串对象输出的是该对象中的数据。
注意:字符串的内容是存储在方法区的常量池里面的,是为了方便字符串的重复使用。
注意* 通过构造方法创建的字符串对象和直接赋值方式创建的字符串对象有什么区别呢?
* 通过构造方法创建字符串对象是在堆内存。
* 直接赋值方式创建对象是在方法区的常量池。
* 基本数据类型:比较的是基本数据类型的值是否相同
* 引用数据类型:比较的是引用数据类型的地址值是否相同
String类的判断功能
boolean equals(Object obj):比较字符串的内容是否相同
boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
boolean startsWith(String str):判断字符串对象是否以指定的str开头
boolean endsWith(String str):判断字符串对象是否以指定的str结尾
* Object:是类层次结构中的根类,所有的类都直接或者间接的继承自该类。
* 如果一个方法的形式参数是Object,那么这里我们就可以传递它的任意的子类对象。
String类的获取功能:
int length():获取字符串的长度,其实也就是字符个数
char charAt(int index):获取指定索引处的字符
int indexOf(String str):获取str在字符串对象中第一次出现的索引
String substring(int start):从start开始截取字符串
string substring(int start,int end):[start,end)从start开始,到end结束截取字符串。包括start,不包括end
String类的转换功能
char[] toCharArray():把字符串转换为字符数组
String toLowerCase():把字符串转换为小写字符串
String toUpperCase():把字符串转换为大写字符串
String trim() :去除字符串两端空格
String[] split(String str) :按照指定符号分割字符串
StringBuilder
是一个可变的字符串。字符串缓冲区类。
String和StringBuilder的区别:
String的内容是固定的
StringBuilder的内容是可变的
注意:+=拼接字符串耗费内存原因
每次拼接都会产生新的字符串对象,而利用StringBuilder来拼接字符串自始至终用的都是同一个StringBuilder容器
StringBuilder类的常用方法
public int capacity ( [k?'p?s?ti]) :返回当前容量 (理论值)
public int lenght():返回长度(已经存储的字符个数)
public StringBuilder append(任意类型):添加数据,并返回自身对象
public StringBuilder reverse:反转功能
//链式编程
sb.append("hello").append("world").append(true).append(100);
StringBuilder和String通过方法完成相互转换
StringBuilder --> String
1.通过构造方法
2.public String toString():通过toString()就可以实现把StringBuilder转成String
3.通过substring(0,length); sb = new StringBuilder("heima").substring(0,sb.length)
String --> StringBuilder
1.StringBuilder(String str):通过构造方法就可以实现把String转成StringBuilder
2.通过append() (new StringBuffer().append("heima"))
注:字符串创建后不会被改变
字符串底层其实是字符数组
集合
数组 长度不可变,可存放任意类型
集合 长度可变 ,只能存放引用数据类型
ArrayList<E>
<E>一种特殊数据类型,泛型
* 添加元素:
public boolean add(E e):添加元素
public void add(int index,E element):在指定的索引处添加一个元素
*获取元素
public E get(int index):返回指定索引处的元素
*集合长度
public int size():返回集合中的元素的个数
*删除元素
public boolean remove(Object o):删除指定的元素,返回删除是否成功
public E remove(int index):删除指定索引处的元素,返回被删除的元素
*修改元素
public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
作者: 小浙姐姐 时间: 2018-5-14 17:49
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |