JAVA笔记(十三)-----Stirng类
String类
1.字符串是一个特殊的对象
2.字符串一旦初始化就不可以被改变。
3.String str = "abc";
4.String str1 = new String("abc");//两个字符串对象,一个"abc"一个new String()
String类复写了Object类中的equals方法,该方法用于判断子串是否相同。
String s1 = "abc";
String s2 = new String("abc");
s1 和 s2 有什么区别?
s1在内存中有一个对象,s2在内存中有两个对象。
String类适用于描述字符串事物
那么它就提供了多个方法对字符串进行操作。
常见操作有哪些?
1.获取
1.1字符串中包含的字符数,也就是字符串的长度
int length();//获取长度
数组也有长度length,但这不是方法(),是属性。
1.2根据位置获取位置上某个字符
char charAt(index);
1.3根据字符获取该字符在字符串中第一次出现的位置
int indexof(int ch);//把传入的字符串自动转换为字符编码进行查找
int indexof(int ch,int formIndex);//从指定fromIndex位置开始获取str在字符串中出现的位置
int lastIndexOf(str);
int lastIndexOf(str,fromIndex);
2.判断
2.1字符串中是否包含一个子串
boolean contains(str);
2.2字符串中是否有内容
boolean isEmpty();
2.3字符串是否以指定内容开头
boolean startsWith(str);
2.4字符串是否以指定内容结尾
boolean endsWith(str);
特殊之处:indexOf(str);可以索引str第一次在字符串中出现的位置,若返回-1说明该str不存在于字符串中,也可以用于对指定判断是否包含。
而且该方法既可以判断,又可以获取出现的位置
if(str.indexOf("abc") != -1)
2.5判断字符串的内容是否相同
boolean equals(str);//复写了Object类中的equals方法
2.6判断内容是否相同,忽略大小写
boolean equalsIgnoreCase();
3.转换
3.1将字符数组转成字符串
利用String类的构造函数:String(char[])
String(char[] value, int offset, int count);//将字符数组中的一部分转成字符串
静态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[],offset,int count);
static String valueOf(char[]);
3.2字符串转成字符数组
char[] toCharArray();
3.3将字节数组转成字符串
String(byte[]);
String(byte[],offset,count);//将字节数组中的一部分转成字符串
3.4将字符串转成字节数组
byte[] getBytes();
3.5将基本数据类型转成字符串
static String valueOf(int );
static String valueOf(double);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
4.替换
String replace(oldChar,newChar);//如果要替换的字符串不存在,返回的是原串
String replace(oldStr,newStr);
5.切割
String[] split(regex)
例:String s = "aaa,bbb,ccc";
String ns = s.split(",");
6.子串,获取字符串中的一部分
String substring(begin);
String substring(begin,end);
注:含头不含尾,从begin开始索引到end-1处字符,如果角标不存在,会出现字符串角标越界异常
7.转换、去除空格、比较
7.1转换字符大小写
String toUpperCase();
String toLowerCase();
7.2将字符串两端的多个空格去除
String trim();
7.3对两个字符串进行自然顺序比较
int compareTo(str);
返回值:如果参数字符串等于此字符串则return 0;
如果此串大于参数字串,则return一个大于0的值
如果此串小于参数字串,则return一个小于0的值
StringBuffer
1.字符串的组成原理就是通过该类实现的
2.StringBuffer可以对字符串内容进行增删
3.StringBuffer是一个容器
4.很多方法与String相同
5.StringBuffer是可变长度
StringBuffer是字符串缓冲区
是一个容器,可以操作多个数据类型,最终通过toString方法变成字符串。
1.存储
StringBuffer append()将指定数据作为参数添加到已有数据结尾处
示例:
StringBuffer sb = new StringBuffer();
sb.append("abc").append("123");
方法调用链:连续的调用,因为append返回的还是本类对象。
StringBuffer insert(index,数据);可以将数据插入到index指定位置
2.删除
StringBuffer delete(start,end);//含头不含尾
StringBuffer deleteChar(index);//删除指定位置index的字符
3.获取
char charAt(index);
int indexOf(String str);
int lastIndexOf(String);
int length();
String substring(int start,int end);
4.修改
void setCahrAt(index,char ch);
StringBuffer replace(start,end,string);
5.反转
StringBuffer reverse();
6.将缓冲区中指定数据存储到指定数据中
void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin);
在JDK1.5版本之后出现了StringBuilder
StringBuffer是线程同步的(线程安全但效率较低)
StringBuilder是线程不同步的(线程不安全但效率较高,将StringBuilder的实例用于多个线程是不安全的,如果需要这样同步,则建议使用StringBuffer)
多线程:用StringBuffer(或者StringBuilder自己加锁)
单线程:用StringBuilder
以后开发建议使用StringBuilder
Java升级的三个因素:
1.提高效率 2.提高安全性 3.简化书写。
基本数据类型对象包装类
byte Byte
shor Short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据 引用类型
基本数据类型对象包装类的最常见作用:用于基本数据类型和字符串类型之间做转换。
基本数据类型转成字符串,示例:基本数据类型 + "";或者基本数据类型.toString(基本数据类型值); 如 Integer.toString(34);//将34转换成"34"
字符串转成基本数据类型:
xxx a = Xxx.parseXxx(String);
int a = Integer.parseInt("123");
double b = Double.parseDouble("12.23");
十进制转成其他进制:
toBinaryString();//2进制
toHexString();//16进制
toOctalString();//8进制
其他进制转十进制
parseInt(String,radix);//s - 要解析的字符串。radix - 解释 s 时使用的基数。
JDK1.5版本以后出现的新特性。
Integer x = 4;//自动装箱 等同于 Integer x = new Integer(4);
x = x + 2;//x自动拆箱变成int类型,和2进行加法运算然后将结果进行装箱赋给x

浙公网安备 33010602011771号