掌握:
掌握string的用法
会使用== 和equals()进行操作比较
stringbuffer
tip:
string s= new string("hello world")//数据存在堆里
String s="hello world"//数据存在字符串常量池.
equals()方法的比较原理:
检查组成字符内容的字符是否完全一致(一位一位的比较)
与"=="的区别:==比较的是地址.但equals()比较的是里面的值.
知识补充
基本数据类型的存储区域在栈中
每一个数据都是相互独立存在的
==比较的是两个数的大小(是在栈里比较的)
引用数据类型,如数组
数据占两个空间,块和栈
栈里面存放数组数据在栈中存在的首地址(数组名)
堆里面存放的是数组数据
String arr[] = new String[2];
arr[1] = "gu";
arr[2] = "jh";
String arr2[] = new String[2];
arr2[1] = "gu";
arr2[2] = "jh";
System.out.println(arr == arr2);
System.out.println(Arrays.equals(arr, arr2));
普通的声明字符串方法,只会在字符串常量池里开辟空间
并且开辟空间之前,会检查字符串常量池里是否已经存在
相同的数据,如果有,直接指向已经存在的数据.如果没有.会在字符串常量池里开辟一个新的空间
String s = "gjh";
String s2 = "gjh";
System.out.println(s ==s2);
一个引用(栈里)两个实例(堆里和常量池里)
String string1 = new String("gjh");
String string2 = new String("gjh");
System.out.println(string1 == string2);
方法的使用
大小写的变换
equalsIgnoreCase():无视大小写比较.
toLowerCase():大写变小写
toUpperCase():小写变大写
String string = "GjH";
String string2 = "hJh";
System.out.println(string.equalsIgnoreCase(string2));
System.out.println(string2.toLowerCase());
System.out.println(string.toUpperCase());
拼接concat
public static void main(String[] args) {
String s = "gu";
String string = new String("junhua");
System.out.println(s.concat(string));
}
提取方法:
此处介绍了对字符串的位置和提取部分字符串的方法
public static void main(String[] args) {
//此处前面添加了三个空格
String message = " Mj jordan ";
// indexOf() 获取字符串的某个字符或字符串首次出现的位置
System.out.println(message.indexOf("j"));
// lastIndexOf() 获取字符串的某个字符或字符串最后一次出现的位置
System.out.println(message.lastIndexOf("j"));
// substring() 从指定位置开始截取字符串,直到最后一个
String newS = message.substring(1);
System.out.println(newS);
// substring() 从指定位置开始截取字符串,直到索引结束位置
String newS1 = message.substring(6, 9);
System.out.println(newS1);
// trim() 去除字符串前后的空格
String newS2 = message.trim();
System.out.println(newS2);
}
用stringbuffer在字符串中进行增删改
public static void main(String[] args) {
StringBuffer buffer = new StringBuffer("abcde");
// append() 追加内容
buffer.append("f");
System.out.println(buffer);
// insert()
buffer.insert(1, "m");
System.out.println(buffer);
// deleteCharAt() 删除指定索引的元素
buffer.deleteCharAt(0);
System.out.println(buffer);
// delete() 根据开始索引和结束索引删除一段字符串
buffer.delete(0, 3);
System.out.println(buffer);
}
用.split来对字符串中的字符进行分割
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = "古dasdas 军dsaf 华saf";
String[] resize = s.split(" ");
for (int i = 0; i < resize.length; i++) {
System.out.println(resize[i]);
}
}