String类

String类的功能:用来操作字符串,一般的字符串的功能都在这里面,

1,  可以把任意对象和数组转化成字符串 

字符串比较的区别?

1,  ==  对于两个对象的地址值作比较是否相等

2,  Equals 判断两个对象的内容是否相等

字符串赋值的内存原理?

 String s = “3434”  这种类型的是简化的,右边都是常量,不能改变的,如果再次赋值的也是再创建了一个,在内存中是不会消失的,在堆内存中因为。

 String s = “3434”+”4”当这样的时候,前面的3434也是指的上面一个创建过的字符。如果常量在内存中有的话不会再创建只会引用这个常量,但如果是变量的话,就不同了,会在内存中再new一个新的变量出来,因为不是常量,所以是会变化的,不确定性。

String的方法:

1,  获取:

1,  获取字符串的长度:length();

2,  指定位置的字符。Char charAt(int index);

3,  获取指定字符的位置。索引不存在返回-1,所以通过返回值-1来判断一个字符不在在的情况。

int indexOf(int ch);

int indexOf(int ch,int fromIndex);

int indexOf(String str);

int indexOf(String str,int fromIndex);

int lastIndexOf(int ch);

int lastIndexOf(int ch,int fromIndex);

int lastIndexOf(String str);

int lastIndexOf(String str,int fromIndex);    

4,获取子串。

String substring(int start);//从start位开始,到length()-1为止。

String substring(int start,int end);//从start开始到end为止。//包含start不包含end

获取整串 substring(0,str.length()); 

2,判断

1,  字符串中包含指定的字符串吗?

Boolean contains(String substring);

2,  字符串是否以指定字符串开头?

Boolean startsWith(string);

3,字符串是否以指定字符串结尾啊?

boolean endsWith(string);

4,判断字符串是否相同

boolean equals(string);覆盖了Object中的方法,判断字符串内容是否相同。

5,判断字符串内容是否相同,忽略大小写。

boolean equalsIgnoreCase(string):   

3 转换:

1,通过构造函数可以将字符数组或者字节数组转成字符串。

2,可以通过字符串中的静态方法,将字符数组转成字符串。

static String copyValueOf(char[] );

static String copyValueOf(char[],int offset,int count);

static String valueOf(char[]);

static String valueOf(char[],int offset,int count);

3,将基本数据类型或者对象转成字符串。

static String valueOf(char);

static String valueOf(boolean);

static String valueOf(double);

static String valueOf(float);

static String valueOf(int);

static String valueOf(long);

static String valueOf(Object);

4,将字符串转成大小写。

String toLowerCase();

String toUpperCase();

5,将字符串转成数组。

转成字符数组。

char[] toCharArray();

转成字节数组。

byte[] getBytes();//可以加入编码表。

6,将字符串转成字符串数组。切割方法。

String[] split(分割的规则-字符串);

7,将字符串进行内容替换。变成新字符串。

String replace(oldChar,newChar);

String replace(oldstring,newstring);

8,对字符串进行追加。

String concat(string);  

StringBuffer和StringBuilder的区别?

         StringBuffer安全是1.5以前的,StringBuilder高效,是升级以后的。里面的方法都一样两个都是容器,是缓冲区用来放相同类型的数据的,容器的长度可以改变。

1,添加。

StringBuffer append(data):在缓冲区中追加数据。追加到尾部。

StringBuffer insert(index,data):在指定位置插入数据。 

2,删除。

StringBuffer delete(start,end);

StringBuffer deleteCharAt(index); 

3,修改。

StringBuffer replace(start,end,string);

void setCharAt(index,char);

void setLength(len); 

4,查找。

int indexOf(string);

int indexOf(string,int fromIndex);

int lastIndexOf(string);

int lastIndexOf(string,int fromIndex); 

5,获取子串

string substring(start);

string substring(start,end); 

6,反转。

StringBuffer  reverse()     

基本数据类型对象?

所以基本数据类型为了方便使用全部封装成了对象,对象有很多功能可以全用,而且类类型的对象可以当基本数据一样来用,有自动装箱和拆箱的功能,系统都自动完成了。如果使用基本数据类型除了跟变量一样的使用,还多了用对象调用方法的功能,方便很多了就。如果操作数据对象时超出了数值的范围,那么这个对象运算的结果不会是跟变量一样了,一但超出就会是字符串的运算模式去运行了。

  public static void main(String[] args) {
  byte by = (byte)234;//如果是小于-128~127之间的数不用强转;101 1011 1010 0000>>010 0100 0101 1111+1>>010 0100 0110 0000
  Byte b = new Byte(by);//1110 1010>>0001 0101+1>>0001 0110溢出,在有效位之间的都置为1
  System.out.println(b);//-22产生溢出,但是不会报错,也不会跑异常。
  
  Byte bb =  new Byte("234");
  System.out.println(bb);
 }

byte Byte

short Short  

int  Integer

long Long

float Float

double Double

char Character

boolean Boolean

1,以上是所有基本数据类型和与之对应的对象,这些对象之间都可以与字符串相互转化。

可以用paserXXX(numstring)方法来转化。

3,  进制之间也可以转化十进制转成别的,或者别的进制转成十进制,用Integer里在的方法。

4,  将一个十进制整数转成其他进制。

转成二进制:toBinaryString

转成八进制:toOctalString

转成十六进制:toHexString》》System.out.println(Integer.toHexString(23));

8,toString(int num,int radix);将十进制转为任意进制。System.out.println(Integer.toString(28,8));//结果为34

9, 将其他进制转换十进制。

parseInt(string,radix);  

System.out.println(Integer.parseInt("12", 8));//将八进制中的12转为十进制,结果为10           

原文地址:https://www.cnblogs.com/ydpvictor/p/2774158.html