一:字符串常见操作
/*
String 中常见的操作!
1.获取
1)字符中包含的字符数
int length();获取长度
2)根据位置获取位置上某个字符。
int charAt(int index);
3)根据字符获取该字符在字符串中的位置。
int indexOf(char ch);返回的是ch在字符串第一次出现的位置
int indexOf(char ch, int fromIndex);从fromIndex指定位置开始。获取ch第一次出现的位置
int indexOf(String str);返回的是str在字符串第一次出现的位置
int indexOf(String str, int fromIndex);从fromIndex指定位置开始。获取在str第一次出现的位置
2,判断:
1)字符串中是否包含某一个子串
boolean contains(str);
2)字符串中是否有内容
boonean isEmpty();原理判断长度是否为零。
3)字符串是否是以指定内容开头、
boolean startsWith(str)
4)字符串是否是以指定内容结束。
boolean endWith(str);
5)判断字符串内容是否相同
boolean equals(str);
6)判读内容是否相同,并忽略大小写
boolean equalsIgncreCase()
3.转换:
1)将字符数组转成字符串
构造函数:String(char[])
String(char[] ,offset,conut);转换其中一部分
静态方法:
static String copyValueOf(char[])
static String copyValueOf(char[] date,int offset ,int conut)
static String valueOf(char[]);
2)将字符串转成字符数组
char[] toCharArray
3)将字节数组转换字符串
String(byte[])
String(byte[] ,offset,conut);转换其中一部分
4)将字符串转换字节数组
byte[] getByte();
5)将基本数据类型转换成字符串
static String valueOf(int)
static String valueOf(double)
特殊:字符串和字节数组在转换过程中,是可以指定编码表的
4,替换:
String replace(oldchar newchar)
5,切割;
String[] split(regex)
6,子串,获取字符串的一部分。
String substring(begin);
String substring(begin,end);//包含头不包含尾。
7,转换,去除空格,比较。
1)将字符串转换成大写或小写
String toUpperCase();
String toLOwerCase();
2)将字符串两端的多个空格去掉
String trim();
3)对两个字符串进行自然顺序比较
String compareTo(str);
*/
class String1
{
public static void main(String[] args)
{
String s1 = "abc";//s是一个类类型变量,“abc”是一个对象。
//字符串最大特点:一旦被初始化就不可以改变!
s1 = "kk";//改变的是s的地址值“abc”空间没变!
String s2 = new String("abc");
//---------面试问题:s1和s2的区别------------------
//s1在内存中一个对象
// s2在内存中两个对象
System.out.println(s1.squals(s2));//String 类复写了Object类中的equals方法!
}
}
二:StringBuffer常见操作
/*
StringBuffer是字符串缓冲区
是一个容器.
特点:
1,长度是可变化的。
2,可以字节操作多个数据类型
3,最终会通过toString
字符串缓冲区的操作
1,存储
StringBufer append();//将指定数据作为数据的结尾
s.append("abc").append(treu).append(34);//方法调用链
插入
StringBufer insert(int index);//插入到指定位置
2,删除
StringBuffer delete(start,end);删除缓冲区的指定内容,包含start,不包含end
StringBuffer deleteCharAt(index);删除指定位置的字符串。
3,获取
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start, int end)
4,修改
StringBuffer replace(start , end, string);
void setCharAt(int index,char ch);
5,反转
StringBuffer reverse();
6,将缓冲区的指定数据,存储到指定字符数组中
void getChars(1,4,chs,1)
jdk1.5版本之后出现了StringBuilder
StringBuffer是线程同步。
StringBUilder是线程不同步(开发一般用)
升级三个因素:
1,提高效率
2,简化代码
3,提高安全性
*/
class StringBufferDemo
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
/*
基本数据类型对象包装类。
byte Byte
short Short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据类型对象包装类的最常见作用、
就是用于基本数据类型和字符串类型之间做装换
基本数据类型转换字符串
基本数据类型+"";
基本数据类型.toString(基本数据类型值);
字符串转换基本数据类型
1)静态
xxx a = xxx.parseXxx(String);
2)非静态
Integer i = new Integer("123");
int num = i.intValue();
十进制转换成其他进制
toBinaryString();
toHexString();
toOctalString();
其他进制转换成十进制
parseInt(String ,radix);
Integer x = 4//简化代码、自动装箱//new Integer(4);
x = x + 2;/自动拆箱后自动装箱
Integer a = 127;
Integer b = 127;
a == b?结果是true。因为a和b指向了同一个Integer对象。
在数值在byte范围内,对于新特性。如果该数据已经存在,则不会开辟空间。
*/