字符串的创建:
1.构造方法创建
2.字符串字面量
- new String() 创建一个空白的字符串
- new String(byte[] array) 根据字节数组来创建字符串
- new String(char[] array) 根据字符数组来创建字符串
- String str=“abc”
String str=new String();
System.out.print(str);
char[] charArray={'a','b','c'};
String str1=new String(charArray);
System.out.print(str1);
byte[] byteArray= {65,66,67};
System.out.print(str2);
常量池:
堆是由Java虚拟机分配出来保存数据的区域,常量池就是从堆分配出来的区域,去存储float,integer,String等
只要以字符字面量的形式创建的多个字符串,只要多个字符串的内容相同,那么都只创建一个对象
String str="abc";
String str1="abc";
String str2='a'+"bc";
String str3=new String("abc");
System.out.print(str==str1);
System.out.print(str1==str2);
System.out.print(str1==str3);
String API:
字符串的比较方法:
boolean equals(object o)
boolean equalsIgnoreCase(object o) (不区分字母的大小写进行比较)
String str="abc";
String str1="abc";
String str2="ABC";
System.out.print(str.equals(str1));
System.out.print(str.equalsIgnoreCase(str2));
字符串的查找方法:
char charAt(int index) //传入索引值,返回一个字符串中的字符
int length() //返回字符串的长度
int indexOf(string str) //(从字符串开头进行索引) 传入一个子字符串,如果在字符串中找到了返回索引,没找到返回-1
int lastIndexOf(string str)//(从字符串结尾进行索引) 传入一个子字符串,如果在字符串中找到了返回索引,没找到返回-1
String str="abc";
System.out.print(str.charAt(1));
System.out.print(str.indexOf("bc"));
System.out.print(str.lastIndexOf("bc"));
获取子字符串的方法:
String subString(int begin) //从传入的索引值开始一直截取到字符串的结尾,返回新的字符串
String subString(int begin,int end) //从传入的索引值begin开始一直截取到索引值end,返回新的字符串
String str="abcdefg";
System.out.print(str.subString(1));
System.out.print(str.subString(2,5));
字符串的转换方法:
char[] toCharArray() //将字符串拆分成字符数组
byte[] getBytes() //将字符串拆分为字节数组
String replace()
String str="abcde";
char[] str1=str.toCharArray();
System.out.print(str1[0]+" "+str1[1]+" "+str1[2]+" "+str1[3]+" "+str1[4]);
byte[] str2=str.getByte();
System.out.print(str2[0]+" "+str2[1]+" "+str2[2]+" "+str2[3]+" "+str2[4]);
String str3="abcbdeeb";
System.out.print(str3.replace('b', '*'));
字符串的判断方法:
boolean startsWith(String str) //判断字符串是否以传入的字符串作为开头
boolean endsWith(String str) //判断字符串是否以传入的字符串作为结尾
String trim() //除去字符串头尾的空格,并返回新的字符串
String str="abcde";
System.out.print(str.startsWith("ab"));
System.out.print(str.startsWith("bb"));
System.out.print(str.endsWith("de"));
System.out.print(str.endsWith("ed"));
String str1=" abc ";
System.out.print(str1.trim());
补充:
String toLowerCase() //返回一个全小写的字符串
String toUpperCase() //返回一个全大写的字符串
String valueOf(int / flaot / double ) //返回指定参数类型的字符串表现形式
String str="abcde";
String str1="ABCDE";
System.out.print(str.toUpperCase());
System.out.print(str.toLowerCase());
int num=1234;
float num1=12.34;
double num3 =12.345;
System.out.print(String.valueOf(num));
System.out.print(String.valueOf(num1));
System.out.print(String.valueOf(num2));