String类基础知识点汇总

1.String类
String s1="abc"//s1是一个类类型变量,"abc"是一个对象
字符串最大特点:一旦被初始化就不可以被改变
String类复写了object类中的equals方法,该方法用于判断字符串是否相同
String s1="abc';
String s2=new String("abc");
s1在内存中有一个对象,s2在内存中有二个俩对象

String类适用于描述字符串事物,那么它就提供了多个方法对字符串进行操作


常见的字符串操作有
1.获取
1.1字符串中包含的字符数,也就是字符串的长度
int length():获取长度
1.2根据位置获取位置上某个字符
char charAt(int index)
当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException
1.3根据字符获取该字符在字符串中的位置
int indexof(int ch);返回的是ch在字符串中第一次出现的位置
int indexof(int ch,int fromIndex);从fromIndex指定位置开始,获取ch在字符串中出现的位置


int indexof(String str);返回的是str在字符串中第一次出现的位置
int indexof(String str,int fromIndex);从fromIndex指定位置开始,获取str在字符串中出现的位置
如果没有找到,返回-1;

int lastIndexOf(int ch):3
2.判断
2.1字符串中是否包含某一个字串
boolean contains(str)
特殊之处:indexOf(str):可以索引str第一次出现的位置,如果返回-1,表示该str不在指定字符串中存在。
所以,也可以用于对指定判断是否包含。
if(str.indexOf("aa")!=-1)
而且该方法既可以判断,也可以获取出现的位置
2.2字符串中是否有内容
boolean isEmpty()
2.3字符串是否是以指定内容开头
boolean startsWith(str);
2.4字符串是否是以指定内容结尾
boolean endsWith(str);
2.5判断字符串的内容是否相同。复写了object类中的equals方法
boolean equals(str)
2.6判断内容是否相同,并忽略大小写
boolean equalsIgnoreCase();
3.转换
3.1将字符数组转成字符串
构造函数:String(char[] value)
 String(char[] ,offset,count);将字符数组中的一部分转成字符串
offset:起始位,count:位数
静态方法:static String copyValueOf(char[]);
 static String copyValueOf(char[],offset,count);
  static String valueOf(char[]);
3.2将字符串转成字符数组
toCharArray();
3.3将字节数组转成字符串(I/O设计)
 String(byte[] value)
 String(byte[] value,offset,count)
3.4将字符串转成字节数组
getBytes();
3.5将基本数据类型转换为字符串
static String valueOf(int)
static String valueOf (double)
3+"";//String.valueOf(3);

  特殊:字符串和字节数组在转换过程中,是可以指定编码表的
4.替换
String replace(oldchar,newchar);
5.切割
String[] split(regex);//使用到了正则表达式,按照指定的regex切割源字符串,然后返回切割所得接到到一个Sting类型的数组中
6.字串 获取字符串中的一部分
String substring(begin);
String substring(begin,end);
7.转换,去除空格,比较
7.1将字符串转成大写或者小写
String toUpperCase();
String toLowerCase();
7.2将字符串俩端的多个空格去除
String trim();
7.3对俩个字符串进行自然顺序的比较

int compareTo(string) //如果参数字符串等于此字符串,则返回值0;如果此字符串按字典顺序小于字符串参数,则返回一个小于0的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于0的值(该值为字符ASCII值的差值)  

注:该功能在后期集合中实现对String数据进行排序时会用到。


StringBuffer是字符串缓冲区
StringBuffer是一个容器(C create U update R read D delete)
特点:1.而且长度是可变化的。
          2.可以操作多个数据类型
          3.最终会通过toString方法变成字符串
1.存储
StringBuffer append():将指定数据作为参数添加到已有数据的结尾处
StringBuffer insert(index,数据):可以将数据插入到指定index位置


2.删除
StringBuffer delete(int start,int 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(int start,int end,String str)
void setCharAt(int index,char ch);

5.反转
StringBuffer reverse()


6.
void getChars(int srcBegin,int srcEnd,char[] det,int dstBegin)
//将缓冲区中指定数据存储到指定字符数组中


JDK1.5版本之后出现StringBuilder


StringBuffer是线程同步
StringBuilder是线程不同步


Java升级三个因素:1.提高效率  2.简化书写   3.提高安全性
单线程程序使用StringBuilder可以提升效率,如果涉及多线程,使用StringBuffer


 基本数据类型对象包装类
byte     Byte
short    short
int      Integer
long     Long
boolean  Boolean
float    Float
double   Double
char     Character
基本数据类型对象包装类的最常见作用:就是用于基本数据类型和字符串类型之间做转换
基本数据类型转成字符串
基本数据类型+"";
基本数据类型.toString(基本数据类型值)//例:Integer.toString(34)
字符串转成基本数据类型
xxx a =xxx.parsexxx(String)
int a =Integer.parseInt("123");//static方法,类名调用
double d=Double.parseDouble("12.32");
boolean b=Boolean.parseBoolean("true");
Integer i=new Integer("123");
int num=i.intValue();//非静态方法,对象调用
十进制转成其他进制
toBinaString();
toHexString();
toOctalString();
其他进制转成十进制
parseInt(String,radix)
JDK1.5版本后的新特点
Integer x=new Integer(4);
Integer x=4;//自动装箱(x可以赋值为null)
x=x+2;  
x.intValue()   x进行自动拆箱,变成了int类型,和2进行加法运算。再将和进行装箱赋给x.
 
Integer m=128;
Integer n=128;
System.out.println("m==n:"+(m==n));//false
Integer a=127;
Integer b=127;
System.out.println("a==b:"+(a==b));//true
注:因为当数值在byte范围内时,对于新特性,如果该数值已经存在,则不会在开辟新的空间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值